但是默认的TTThumbsViewController,点击一个图片的时候,下面的button只有上一个和下一个,并没有播放按钮。 之前以为Three20没有相应的播放功能。...但是经过查看代码,发现在TTPhotoViewController中,其实有相关的方法,只是没有把播放按钮显示出来而已。...UIBarButtonItem* playButton = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemPlay...---- Previous 给TableView加背景 Next 创建没有按钮的UIAlertView
方法一:添加站位控制器,我们可以在中间的位置上添加一个空的站位控制器,然后将button覆盖到UITabBar中间,这样做简单方便,但是创建了一个Controller和一个UITabBarItem没有别的用处只是用来站位...UINavigationControlller 设置左右UIbarbuttonitem代码的抽取 我们发现每一个UINavigationControlller根控制器中都需要写一大段相同的代码来设置UIbarbuttonite...,那么我们写一个UIbarbuttonitem的分类抽取一个方法来简化代码。...:@selector(leftBtnClick)]; 2. uiview关于frame的分类 当我们在设置控件的宽高以及位置的时候需要设置self.frame.size.height;代码很长,那么我们可以写一个...我是xx_cc,一只长大很久但还没有二够的家伙。
”,一个“完成”,只有点击完成时才真正产生修改。...其实实现思路跟上面的大体相同,还是添加一个工具栏上去,因为这也是一个textfield,我们还是要将工具栏作为它的inputAccessoryView。不过这次我们换一种实现方式。...,还记得上面的delegate中设置了一下只有当不是选取器的textfield时才显示键盘的工具栏吗,如果不判断一下,两个工具栏会冲突,结果就是什么都不显示,创建工具栏的代码如下: // 工具栏按钮 -...toolbar时,同样是用了一个UIBarButtonItem的数组,来存储三个UIBarButtonItem对象,注意,为什么是三个呢,界面上不是只有取消和完成两个按钮吗?...其余两个按钮的代码不多说了,挺简单的,这个占位按钮很有意思: UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem
多控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单 当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个view时,可以用一个大的view去管理1个或者多个小view...控制器也是如此,用1个控制器去管理其他多个控制器 比如,用一个控制器A去管理3个控制器B、C、D 控制器A被称为控制器B、C、D的“父控制器” 控制器B、C、D的被称为控制器A的“子控制器”...如果栈中只有一个对象,那么根控制器也处于栈顶) 设置UIWindow的rootViewController为UINavigationController 根据具体情况,通过push方法添加对应个数的子控制器 2.2 代码创建...[_window makeKeyAndVisible]; return YES; } 2.3 给nav添加子控制器的三种方法 1,initWithRootViewController:创建导航控制器时...第一次显示出来的自控制器; 2,addChildViewController:此方法是UIViewController的方法,可以用来添加子控制器; 3,通过属性viewControllers进行设置
在App内部发生某个事件时,就会发出提醒,为某个事件订阅或者接收提醒的过程叫做delegation(委托)。 例如,我们使用delegate创建table view,并告知要绘制10行。...return 0 } 注:注意到return那行目前是零,这意味着这个table view中没有组。...苹果公司增加了一个警告注释,说如果组的个数是零,那么就不会显示行,组包含行cell,没有了组section,行cell也就不会被显示出来。...可以用点语法调用section和row属性: var currentRow = indexPath.row var currentSection = indexPath.section tableView...先创建一个按钮,代码如下: UIButton * button=[UIButton buttonWithType:UIButtonTypeSystem]; button.frame=CGRectMake
UITextField 属性 (1) PlaceHolder 属性 PlaceHolder 属性 : 属性值是一个字符串, 再文本框没有输入内容时, 文本框内显示的灰色文本, 用于作为文本框提示信息...触摸背景关闭虚拟键盘 (1) 修改 Custom Class 修改背景类别 : -- 修改原因 : 默认的背景控件时 UIView, 该控件没有 IBAction 事件, 因此需要将背景控件设置为...: 选中后, 该 UITextView 控件有弹性, 拖动控件内容有弹回效果, 没有勾选时拖到边界僵硬的停止; -- Bounce Horizontally : 水平方向有弹性; -- Bounce...创建按钮 : //创建第一个按钮 UIBarButtonItem * buttonItem = [[UIBarButtonItem alloc] initWithTitle:@"键盘附件...target:self action:nil]; //创建第二个按钮 UIBarButtonItem * spaceItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem
步骤就是创建一个UIBarButtonItem对象,然后直接把这个对象赋值给self.navigationItem.leftBarButtonItem或者右边的。...当然也能够一次创建非常多个UIBarButtonItem组成一个数组。然后把这个数组赋值给self.navigationItem.leftBarButtonItems。...也要注意一下有多个button时的排列顺序。 (5)我们创建的这些导航条button有非常多种形式。...有的是由文字的,有的时图片,有的时系统自带的如摄像头或者Reply这些icon,有的全然是自定义的视图。...事实上它们有的时不透明有的时透明有的时半透明,但不知为何无效果 self.navigationController.navigationBar.barStyle=UIBarStyleDefault
介绍 Split View通常只是一个基本元素,它填满整个屏幕,不可能把Split View放到其他什么的内部,一般情况下是提供给整个app的。...这个数组有两个元素,左侧和右侧,左侧是元素0,右侧是元素1 @property (nonatomic, copy) NSArray *viewControllers; 代理方法:Split View不能没有...delegate,如果没有设置delegate,那么当Split View进入Portrait模式的时候左侧就会消失,你应该在角落里放一个小按钮,使用户可以点击它来让左侧出现 – (BOOL)splitViewController...detailViewController removeSplitViewBarButtonItem:nil]; } 在iPad上的基本样式截图为: 在故事板布局的样式截图为: 下面我们就通过纯代码的方式创建如下...所有的文件截图为: 3、下面就是具体的代码创建了: //在AppDelegate.m文件中: 导入头文件并声明必要的属性,同时实现分割控制器的协议 #import "AppDelegate.h" #import
说起来有些难于理解,通过代码,我们就能很好的理解Item的意义。...首先,我们创建一个item,用UINavigationBar导航栏push出来: UINavigationItem * item = [[UINavigationItem alloc]initWithTitle...除了创建一个标题item,我们也可以创建一个View类型的item: UIView * view = [[UIView alloc]initWithFrame:CGRectMake(0,...,第二个方法多了一个landscapeImagePhone的参数,这个参数可以设置设备横屏时的图片。...,对于BarButtonItem这个对象,系统也封装好了许多原生的可以供我们使用,创建的时候使用如下方法: UIBarButtonItem * button = [[UIBarButtonItem alloc
如果它第一个hitTest就命中了的话,这个事件就不会再被传递给其他子试图了。 举个例子: ?...如果第一响应者没有进行处理,第一响应者将事件将处理事件的责任传递给下一个,更高级的对象,即当前responder对象的nextResponder。...某些时候,当您的代码正在执行动画时,可能希望关闭事件的传递。 在view添加单击手势之后,原来的touchesEnded方法就无效了。touchesBegin 还是生效的。...但是当我们要操作的视图不是UITextView或UITextField的时候,inputAccessoryView就变成了readonly的。...(难道cell被选中时不是第一响应者?)
同样,当用户清空文本的时候,placeholder又会重新显示出来。...target:self action:nil]; UIBarButtonItem * doneButton = [[UIBarButtonItem alloc] initWithTitle:@...(void) dismissKeyBoard{ [self.textView resignFirstResponder]; } @end 同样地思路,我们也可以把作为占位文字的UILabel用UITextField...大家知道,Objective-C没有绝对的私有变量,因为我们可以通过KVC来访问私有变量。...这种方法简单易懂,代码量少,推荐大家使用这种方法。
搜索也中枪,搜索首页没有办法取消,“热门搜索区域”也多出来一块儿空白。另外,“我的Tab”页部分如图1.3、图1.4所示,导航栏回不去了,右上角的三个UIBarButtonItem也不见了。...图3.1 xib 属性 ② 如果用的系统 SearchViewController,发现没有灰色蒙层了,可以这么试试。 ?...图4.5 这个新属性在 iPhone X 上的值 那为什么会发生偏移?这个偏移的值又是怎么确定的?...这个问题也是在新的导航栏结构视图下会出现,原因是新的导航栏结构用了 AutoLayout 布局,我们这个并不是用常规的 UIBarButtonItem 方式实现的,而是一个 UIBarButtonItem...至于 Tabbar ,因为我们用的是系统的,所以目前并没有发现什么奇怪的地方。希望我们踩的这些坑可以让各位在适配的过程中少走一些弯路!
target:self action:@selector(back)]; 复制代码 //自定义视图 self.navigationItem.leftBarButtonItem = [[UIBarButtonItem...= (id)self; // 控制手势在根控制器时不触发 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch...:(UITouch *)touch{ return self.childViewControllers.count > 1; } 复制代码 导航栏透明和底部分隔线 //设置透明的背景图,便于识别底部线条有没有被隐藏...但是如果用navigationBar.hidden隐藏导航栏,我们可以继续使用navigationBarHidden提供的滑动pop效果,如果用navigationBarHidden,这个操作将无效;但前者...navigationBar.hidden没有系统自动的动画效果。
引言 原理:利用系统的返回手势interactivePopGestureRecognizer进行实现 使用场景:返回按钮有点小,不好触发返回时,可借助右滑返回来提升用户体验 在这里插入图片描述 I 、...return NO; } } //这里就是非右滑手势调用的方法啦,统一允许激活 return YES; } II、QMUI导致右滑返回没有生效的解决方法...2.1 UINavigationController (QMUI)进行控制右滑返回 QMUI使用分类UINavigationController (QMUI)方式进行控制右滑返回,具体核心代码如下 重写...:NO animated:NO]; // viewController.hidesBottomBarWhenPushed =YES; //设置左边按钮 UIBarButtonItem...viewController animated:animated]; } 2.2 解决方法 所以当你自定义导航栏(自定义了leftBarButtonItem按钮)没采用系统的默认的实现,发生当前不可以手势返回,可先检查为什么当前状态
---- 对nextVC 进行属性赋值后,执行push跳转,方法的执行顺序: A跳转到B 代码顺序执行: B的init 方法;(此方法中 B的navigationController 不存在...但是当自定义返回按钮时,这种手动滑动返回的效果就没有了。...即设置当前页面的左右barbutton,用self.navigationItem.leftBarButtonItem等。...UIBarButtonItem *one = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd...target:nil action:nil]; UIBarButtonItem *two = [[UIBarButtonItem alloc] initWithBarButtonSystemItem
在原来的代码上就把cell的代码进行了重写,所以本篇作为补充,关键代码还得看之前的博客。 1.第一种cell,只有微博内容,没有图片,效果如下: ? ...1000) options:NSStringDrawingUsesLineFragmentOrigin attributes:dic1 context:nil]; 22 23 //创建新的约束...由上面的界面可以清楚的看到转发和评论的界面是基本一致的,所以我们在代码中可以用一个ViewController来控制这个视图,通过点击不同的按钮来拼接不同的url....action:@selector(tapDone:)]; 5 UIBarButtonItem * item2 = [[UIBarButtonItem alloc]initWithBarButtonSystemItem...:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 6 UIBarButtonItem * item3 = [[UIBarButtonItem
接下来我们用storyboard结合着代码来模拟一下微信的视图控制模式。 "工欲善其事,必先利其器",下面主要是对storyboard来进行我们项目框架的搭建的,必要时,用代码实现我们的页面效果。...换个说法,就是登陆页面在storyboard中和其他页面是没有关系的,需要我们用业务逻辑来实现,下面是用模态的形式来进行视图切换的。...(2)我们手写代码应如何添加Bar Button Item呢?下面给出的代码是用纯代码来实现添加的。...)sender { 3 [self dismissViewControllerAnimated:YES completion:^{}]; 4 } 总结: 上面的东西没有多高深的技术,用storyboard...上面的Project用storyboard配置好以及实现相应的代码,运行效果如下: ?
引言 原理:利用系统的返回手势interactivePopGestureRecognizer进行实现 使用场景:返回按钮有点小,不好触发返回时,可借助右滑返回来提升用户体验 I 添加右滑返回手势 1.1...- (BOOL)kunnan_forceEnableInteractivePopGestureRecognizer { return YES; } II QMUI导致右滑返回没有生效的解决方法...viewController animated:animated]; } 2.2 解决方法 所以当你自定义导航栏(自定义了leftBarButtonItem按钮)没采用系统的默认的实现,发生当前不可以手势返回,可先检查为什么当前状态...- (WKWebView *)webView{ if(_webView == nil){ //创建网页配置对象 WKWebViewConfiguration...*config = [[WKWebViewConfiguration alloc] init]; // 创建设置对象 WKPreferences *preference
多行列表选择器示例代码 (1) 示例代码 多行列表选择示例代码 : -- 界面设计文件 : -- OCViewController.h : // // OCViewController.h /...示例代码 : -- 解析 : 在 API 内部是没有定义关联逻辑的, 关联逻辑是开发者自己使用逻辑实现的, 与上面的示例代码没有本质区别, 使用的还是相同的一套 API; -- 界面设计文件 : ...)]; [self.view addSubview:toolBar]; //创建文字的 控件按钮 UIBarButtonItem * bi1 = [[UIBarButtonItem...target:self action:@selector(clickCodeItem:)]; //创建固定长度的空白 UIBarButtonItem * bi4 = [[UIBarButtonItem...* bi5 = [[UIBarButtonItem alloc] initWithCustomView:progress]; //将上面创建的按钮添加到工具条中 toolBar.items
(虽然我觉得这并不太可能),那么你所需要的操作就非常简单了,不多说直接上代码。...提供一个解决方案就是在进入viewController时 - (void)viewDidAppear:(BOOL)animated; 中禁用侧滑手势,然后在离开viewController时 - (void...因为侧滑返回手势事实上是由存在已久的UIPanGestureRecognizer来识别并响应的,它直接与UINavigationController的view进行绑定,因此在包含UIScrollView...最重要的一部分我用蓝色加粗标出来了,就是说这个UINavigationBar主要是由左右按钮控件、中间标题控件组成。...//添加取消btn UIBarButtonItem *cancelBtn = [[UIBarButtonItem alloc] initWithTitle:@"取消" style:UIBarButtonItemStylePlain
领取专属 10元无门槛券
手把手带您无忧上云