2016至2017年上半年iOS项目细节(1)

本文介绍了iOS开发中的多种实用技巧,包括宏和常量的优化、推送通知注意事项、导航栏及TableView的定制化设置等,帮助开发者提升应用质量和用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

宏和常量的优化

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端无影响


--------三木运算符很长  

   三木运算符 运算注意 运算符号的优先级

建议写成多行,debug 出问题 的定位位置很让人满意大笑

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;

    3) 我们自己加个分割线上去。(适合局部的分割线设计)
tableview代码瘦身
    //设置table的row高度,也可以使用datasource的回调设置
    tableView.rowHeight = 88;
    tableView.estimatedRowHeight = 88; 大概cell高度

    //设置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坐标可以指定。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值