宏和常量的优化
1.宏适合 定义方法(三目运算)| 获取 变化的值(硬件屏幕的宽)
2.常量 适合 确定的值
static修饰 内部项目文件使用
const NSString * str; 全局 extern str(外部也可使用)
推送
apns注意: 如果推送的 aps: { alert: “ xxxx “ } 为正常 ,如果推送的 aps: { alert: { title:”xx”, body;”xx”} } 推送内容完整为正常,否则aps: { alert: { title:”xx”, body:””}苹果服务器不发送消息. android端 无影响
苹果端推送 不能一次发两条, 间隔必须大于14s . android端无影响
--------三木运算符很长
三木运算符 运算注意 运算符号的优先级

tips:链式语句、判断语句很多的可以考虑写多行
--------NSArray取数组中最大值或者最小值---偷个懒
NSArray * arr = [NSArray arrayWithObjects:@"10",@"50",@"9", nil];
NSInteger max = [[arr valueForKeyPath:@"@max.intValue"] integerValue];
//另一种思路,在一些情况下可以很快获取,同样去最小值用min,要比循环方便多了,如果数组中放的是其他对象也可以用@max.property尽心筛选,不过类型都是NSNumber.
--------导航栏
self.navigationController.navigationBar.barTintColor = [UIColor blueColor];
导航栏颜色
导航栏font颜色
[self.navigationController.navigationBar setTitleTextAttributes:
@{NSFontAttributeName:[UIFont systemFontOfSize:19],
NSForegroundColorAttributeName:[UIColor redColor]}];
产生原因
当我们在我们在Storyboard或者Nib上对NavigationBar进行上色时,运行出来的效果与设计图出现色差,iOS7及以上对导航栏(工具栏亦同)的高斯模糊处理,也就是可以把导航栏后面的视图或者对导航栏的背景(或背景图)显示出来,如果单纯的设置背景颜色也是有高斯模糊处理的效果,对纯色高斯模糊处理过后相当于纯色的70%(猜测)透明化处理。嗯,理论。
当你用捕获视图层级关系的时候(capture view hierarchy)发现多了个view,是它加了透明处理。
tips: 如果你想要透明效果,或阴影效果,记住多加view,不要指望layer 或者 backgroundColor
解决方案
a).取消模糊效果
self.navigationController.navigationBar.translucent = NO;// Bar的模糊效果,默认为YES
b).设置背景图片
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"导航背景"] forBarMetrics:UIBarMetricsDefault];
------tableview 你需要知道的
设置UITableView Cell 间隔线颜色和长度。默认没有达到全屏宽度,真抓狂啊
tableView.separoterInset = UIEdgeInsetsZero; 一句话搞定。
[tableView setSeparatorColor:[UIColor redColor]]; //分割线红色
tips:
//去掉tv所有的分割线:看不见 一定程度上
[tv setSeparatorColor:[UIColor clearColor]];
1)tableView.separatorStyle =
UITableViewCellSeparatorStyleSingleLine;// 线风格
UITableViewCellSeparatorStyleNone; // 默认没有线
UITableViewCellSeparatorStyleSingleLineEtched // This separator style is only supported for grouped style table views currently // 多组数据 没有线(作者加了没效果。)
2)我们设置一下cell的边框线。(最适合多组数据,且每组一个cell;如果一个组里边cell比较多,会有线堆叠,出现分割线颜色不一致,视情况而定使用1)或3)方法)。
cell.layer.borderWidth = 1;
cell.layer.borderColor = [UIColor BlackColor].CGColor;
tableView.rowHeight = 88;
//设置table的section的header和footer的准确高度(不能动态改变),也可以通过delegate的回调设置
tableView.sectionHeaderHeight = 100;
tableView.sectionFooterHeight = 300;
这个会变化一些,也不能太依赖这个。
tableView.estimatedSectionHeaderHeight = 100; //大概header高度
tableView.estimatedSectionFooterHeight = 300; //大概footer高度
tips:动态变化view高度宽度真理:使用类方法 动态计算控件高度。
上边的sectionHeaderHeight、sectionFooterHeight高度决定了视图高度。你不设置,你的view高度不会是你要的效果
3.右边索引栏颜色
//设置table的右边索引栏的字体颜色
tableView.sectionIndexColor = [UIColor yellowColor];
//设置table的右边索引兰的背景颜色
tableView.sectionIndexTrackingBackgroundColor = [UIColor grayColor];
4.sectionHeaderView 简单的一个label或者view上加个label效果不一样的(浮在页面上,只要section里边的cell还有),会随着滚动变化
sectionFooterView 尤其是设置了最后一个section的sectionFooterView效果很明显 不随tableview 滚动消失,它会遮住tableview的显示的面积,感觉你的tableview高度不对。尽量不要使用sectionFooterview, 因为它在滚动时可能会挡住一部分cell的内容。
------masonry布局
如果视图要加阴影就会加在视图里的内控件边界。解决办法:将一个相同大小的view加上阴影放在视图下方,给 view加阴影。
----------scrollview
scrollview
特殊的地方 scrollview内部添加试图
,第一个view的初始y坐标 不管多少都为 0
。scrollview 是撑大的(这点用xib布局很有感触)。
外部添加视图初始y坐标可以指定。