趣好玩开发日志 03-day
控件剖析
- 一个控件组成
- 矩形框:控件自己的显示位置和尺寸
- 内容:控件内部的东西,比如子控件
- bounds:以控件自身内容的左上角为坐标原点,计算出来得矩形框位置和尺寸(一旦修改了控件的bounds,实际修改的是控件内容的位置和尺寸,而不是自身,因为控件自身的位置和尺寸由frame决定)
- frame: 以父控件内容的左上角为坐标原点,计算出来得矩形框位置和尺寸
- scrollView.bounds.origin == scrollView.contentOffset
TableViewConreoller
- 当不想tableView的内容被tabBar盖住,可以设置tableView.contentInset=UIEdgeInsetsMake(0,0,49,0);
contentInset调整
- 默认情况下,如果一个控制器A在导航控制器管理中,如果A的第一个子控件是UIScrollView,那么就会自动调整UIScrollView的contentInset
- UIEdgeInsetsMake(64,0,0,0)//有导航栏
- UIEdgeInsetsMake(20,0,0,0)//没有导航栏
- 默认情况下,如果一个控制器A在导航控制器管理中,并且导航控制器又处在UITabBarController管理中,并且如果A的第一个子控件是UIScrollView,那么就会自动调整UIScrollView的contentInset
- UIEdgeInsetsMake(64,0,49,0)
- 如何禁止上述默认问题呢?
self.automaticallyAdjustsScrollViewInsets = NO;
- 如果button的样式是system,系统会自动对button做某些渲染效果,如果完全自定义,样式改为custom
UILabel换行问题
- storyboak/xib 快捷键:option = 回车
- 在代码中输入\n 也可以实现换行
UITextField
- 如果想让text只能输入数字或英文,修改textfield的keyboard Type属性
- textfield的一键删除小按钮在clear button属性中设置
设置按钮圆角
//设置按钮圆角
self.loginBtn.layer.cornerRadius = 5
self.loginBtn.layer.masksToBounds=YES
动画相关
[self.view layoutIfNeeded];