[菜鸟成长记]iOS开发自学笔记05-prototype cells中使用AutoLayout

  事情起因于我在一个表格视图里打算添加表格单元行向左滑动显示删除按钮的操作,实现起来比较简单只要定义方法

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath

即使不包含任何方法实现部分的代码,只要定义了这个方法,编译运行程序后,向左华东单元行都是能出现删除按钮的,可是那天我这样做过之后,删除按钮死活都出不来。最初一直是怀疑是程序的问题,上网找了许久也没有见到类似的问题。后来静下心来想了想,肯定是刚开始自己的思考方向出了问题,仔细研究了下界面的ui,才发现不是删除按钮不能显示,而是表格单元行所显示的宽度超过了屏幕的尺寸,实际上按钮是显示在了屏幕的“外面”。

  如图在新建好的一个prototype cell上放置一个segmented control,先针对segmented control调整好AutoLayout的约束,确保所有的引导线都已变成蓝色运行程序后却得到了这样的结果

可以看到segmented control并没有完全在水平方向上能够显示出来,看上去像是有一部分显示到了屏幕的外面,起初很奇怪这样的结果,明明segmented control已经有充分的约束来使其正常显示了,为什么还是不能显示呢。原来,segmented control的父视图-tableview相对于其父视图-view的约束并没有被建立,也就是仅仅只建立了一层的相对位置约束关系,而真正显示在屏幕上的东西是要以view作为父视图来显示的,于是点击之前拖上去的tableview视图,依次建立Leading,Trailing,Top,Bottom后显示的结果就变成了下面的样子:

可以看到segmented control已经是可以正常显示,而且在向左滑动后delete按钮也可以正常显示

时间: 2024-11-05 06:31:45

[菜鸟成长记]iOS开发自学笔记05-prototype cells中使用AutoLayout的相关文章

[菜鸟成长记]iOS开发自学笔记01-向helloworld致敬

我有一个梦想就是成为一个iOS开发.........菜鸟,老规矩,一切从helloworld开始. iOS8伴随着iphone6/6plus而来,Xcode6伴随着iOS8而来,苹果更新换代的速度依然很快,从硬件到软件,每次更新就意味着开发者们又要面临着一次次的恶补,当然,像我这样励志成为iOS开发菜鸟的人来说,目前还没有到面临这些问题的烦恼,我只需要专心做好我的hello world小程序,就像我从前无数次地在其他平台一样. 首先打开Xcode后从模板中选择single view applic

[菜鸟成长记]iOS开发自学笔记07-UITextField自动隐藏键盘

点击UITextField输入框后,软键盘默认情况下在结束输入后不会自动隐藏,目前总结了两种可以自动隐藏软键盘的方法: 第一种:通过响应UITextField对象的Did End On Exit事件,当点击默认软键盘的"Done"按钮或"Return"按钮会触发Did End On Exit 事件,通过编码实现来响应Did End On Exit事件来实现自动隐藏键盘 - (IBAction)TextFieldDidEndOnExit:(id)sender { [t

[菜鸟成长记]iOS开发自学笔记06-导航控制器和segue的传递数据

导航控制器通常用来显示分层内容的向下导航界面,受限于设备屏幕大小,iPhone或者iPad需要通过更多的层次访问来显示足够丰富的内容,导航控制器一般会和表视图同时存在,但不是说必须一起绑定使用,这里将表视图嵌入到导航控制器中用于分层显示视图内容,以single view application为模板建立一个project,打开Main.storyboard,点击view controller再在工具栏上点击editor->embed in->navigation controller将视图控制

[菜鸟成长记]iOS开发自学笔记03-UITableView初级进阶之cell的删除

上一节在自定义UITableView表视图单元格的基础上,实现了一个简单的表视图界面,包含了一些自定义的界面元素在内.苹果的产品从iPhone到MAC都提供了多种多样的手势操作以彰显其操作的人性化,在如“邮件”等系统自带软件的表视图单元格中,每个单元格向左滑动即可在最右边出现删除按钮,以方便用户快速地对所选择行执行删除操作.其实实现这个功能并不难,仅仅只需要在ViewController中实现UITableViewDataSource协议中的方法 - (void)tableView:(UITab

[菜鸟成长记]iOS开发自学笔记04-AutoLayout自动布局

随着iphone6的问世,苹果又进一步加大了手机屏幕的尺寸,而且按照目前这种趋势来判断,未来应该还有可能会出现更大的屏幕的手机.如果没有AutoLayout那么目前iPhone有4种尺寸的屏幕,iPad也有两种尺寸.而一款应用程序想要兼容所有这些的不同尺寸的屏幕就必须要让程序做一些特殊处理,比如在程序里去获取屏幕尺寸再根据具体尺寸去建立不同的UI布局,显然每多一种屏幕就需要增加一种处理,这样很显然是繁琐和不经济的.而利用AutoLayout则可以使用约束对象的功能来实现一次布局在多种屏幕通用的目

菜鸟成长记1,软件工程大一经历

菜鸟成长记1 -----大一总结及反思 大一即将结束,突然间想总结一下我的大一生活,最重要的还是好好反思一下. 回首整个大一感觉自己学了好多的东西,但最终的感觉还是一无所成,大一上学期学习c语言,一直处于一个总是一个没有入门的感觉,虽然简单的c经长期磨练已经差不多搞懂,不过稍微复杂点的抑或着说稍微麻烦点的都没有真正学会,仅仅是学过c而已,在学c的同时一直想练ACM可能真的是天赋不够也可能是自己不是这块料,在几经折磨下,做了uva上不超过30道题的情况下放弃了,除想练ACM这中间还接触了java和

给iOS开发自学的建议,附iOS自学资源

文/上嵌科技(简书作者) 原文链接:http://www.jianshu.com/p/4b7e7aceddf5 著作权归作者所有,转载请联系作者获得授权,并标注"简书作者". 很多同学都在大学期间,或在职期间想自学ios开发或者Android开发,今天小编就给大家集中介绍iOS开发自学方法和建议,附送iOS自学资料. ios开发自学者的建议从新手到入行 不要听信从0基础到精通.到专家,学习编程最最关键的是从新手到入门,当你入门了,你自我学习.自我驱动的能力会更强,没有入门,当你过了学习

IOS学习之斯坦福大学IOS开发课程笔记(第六课)

转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/28398697 作者:小马 这节课主要讲述多个MVC是如何协同工作的.到目前为止,所有的课程都只是涉及到一个视图.从这节课开始,将会持到多视图应用的例子. 多视图开发这里用navigationController举例子.这个也是比较常用的.如上图所示,一个 navigation Controller(MVC)会指向一个rootViewController(另一个MVC),这个是第一

IOS开发学习笔记-(2)键盘控制,键盘类型设置,alert 对话框

一.关闭键盘,放弃第一响应者,处理思路有两种 ① 使用文本框的 Did End on Exit 绑定事件 ② UIControl on Touch 事件 都去操作 sender 的  resignFirstResponder #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UITextField *txtUserName; @pro