
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath根据你记住的按钮返回相应的类型啊。UITableViewCellEditingStyleDelete或者UITableViewCellEditingStyleInsert。
在项目需求中,经常会有对 TableView Cell 左滑事件及按钮的自定义设置需求
在iOS 11.0之前,我们可以看到 Cell 的左滑界面 UITableViewCellDeleteConfirmationView 布局是在于 Cell 之中的,并且只有左滑事件之后才会添加到 Cell 中,在左滑界面中存在一个 UIButton 的子视图,这便是我们需要自定义的视图
在 tableView 的 delegate 方法中自带有 - (NSArray *)tableView:(UITableView*)tableView editActionsForRowAtIndexPath:(NSIndexPath*)indexPath 可自定义事件
至此iOS 11.0之前的版本的左滑自定义便已经可以了(当然,也可以自定义左滑时多个事件,原理也是一样的)
在iOS 11.0之后的版本,左滑布局发生了改变
iOS 11.0之后的当然能用之前的方法了,而苹果在11.0之后其实也新增了另外一个新的方法 - (UISwipeActionsConfiguration *)tableView:(UITableView *)tableView trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath ,只在iOS 11.0之后的系统才有效,其实目前区别上也仅仅是action多了一个image属性,然而此image属性也不能显示原图,而是会被自动渲染。
GItHubDemo
IOS开发UI篇—导航控制器属性和基本使用一、导航控制器的一些属性和基本使用
1.把子控制器添加到导航控制器中的四种方法
(1)
1.创建一个导航控制器
UINavigationController *nav=[[UINavigationControlleralloc]init]
2.设置导航控制器为window的根视图
self.window.rootViewController=nav
3.添加
YYOneViewController *one = [[YYOneViewController alloc] init]
[nav pushViewController:one animated:YES]
(2)
1.创建一个导航控制器
UINavigationController *nav=[[UINavigationControlleralloc]init]
2.设置导航控制器为window的根视图
self.window.rootViewController=nav
3.添加
YYOneViewController *one = [[YYOneViewController alloc] init]
[nav addChildViewController:one]
(3)
1.创建一个导航控制器
UINavigationController *nav=[[UINavigationControlleralloc]init]
2.设置导航控制器为window的根视图
self.window.rootViewController=nav
3.添加
YYOneViewController *one = [[YYOneViewController alloc] init]
nav.viewControllers=@[one](添加到导航控制器的栈中)
说明:nav.viewControllers== nav.childViewControllers注意该属性是只读的,因此不能像下面这样写。nav.childViewControllers = @[one]
(4)最常用的方法
YYOneViewController *one=[[YYOneViewController alloc]init]
UINavigationController *nav=[[UINavigationController alloc]initWithRootViewController:one]
2.当前子控制器界面导航栏的标题以及对应返回标题的设置
self.navigationItem.title=@"第一个界面"
self.navigationItem.backBarButtonItem=[[UIBarButtonItemalloc]initWithTitle:@"返回一"style:UIBarButtonItemStylePlain target:nilaction:nil]
3.给导航栏添加按钮
说明:可添加一个,也可以添加多个(数组)
添加导航栏左边的按钮(添加一个相机图标的按钮),会盖掉返回
self.navigationItem.leftBarButtonItem=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:nil action:nil]
4.界面跳转
跳转到第二个界面(当前为第三个,移除当前栈顶的控制器) [self.navigationControllerpopViewControllerAnimated:YES]
移除处理栈底控制器之外的所有控制器 [self.navigationControllerpopToRootViewControllerAnimated:YES]
只要传入栈中的某一个控制器,就会跳转到指定控制器 [self.navigationController popToViewController:<#(UIViewController *)#>animated:<#(BOOL)#>]
二、代码示例
YYAppDelegate.m文件
1 //
2 // YYAppDelegate.m
3 // 01-导航控制器的使用1
4 //
5 // Created by apple on 14-6-4.
6 // Copyright (c) 2014年 itcase. All rights reserved.
7 //
8
9 #import "YYAppDelegate.h"
10 #import "YYOneViewController.h"
11
12 @implementation YYAppDelegate
13
14 //应用程序启动完毕即会调用
15 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
16 {
17 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]
18 self.window.backgroundColor = [UIColor whiteColor]
19
20
21 //3.添加子控制器到导航控制器中
22 //第一种也是最常用的一种
23 //YYOneViewController *one=[[YYOneViewController alloc]init]
24 //UINavigationController *nav=[[UINavigationController alloc]initWithRootViewController:one]
25
26 //1.创建一个导航控制器
27 UINavigationController *nav=[[UINavigationController alloc]init]
28 //2.设置导航控制器为window的根视图
29 self.window.rootViewController=nav
30
31 //第二种
32 YYOneViewController *one = [[YYOneViewController alloc] init]
33 [nav pushViewController:one animated:YES]
34
35 //第三种
36 //[nav addChildViewController:one]
37 //第四种(添加到导航控制器的栈中)
38 //nav.viewControllers=@[one]
39
40 // 导航控制器的栈
41 //nav.viewControllers== nav.childViewControllers
42 // 注意该属性是只读的,因此不能像下面这样写
43 //nav.childViewControllers = @[one]
44
45
46 [self.window makeKeyAndVisible]
47 return YES
48 }
49
50 @end
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)