美文网首页iOS开发实战笔记
iOS开发实战小知识点(一)

iOS开发实战小知识点(一)

作者: Eddiegooo | 来源:发表于2017-09-10 21:19 被阅读72次

    记录开发过程中遇见的一些小问题和知识点

    1.在release模式下,可以在控制台po打印属性信息方法:

    在Build Setting -> Optimization Level 下,将release模式设置和debug模式一致即可。 发布的的时候记得改回来哦

    2.关于block的使用

    情景:开发过程中遇见一个很奇怪的bug:在debug模式下程序运行正常,但是在release模式下,程序运行失败。一段引用block的代码导致崩溃。定义block的时候没有带参数,但是在调用block的时候,不小心传了一个参数,就是这个原因导致程序在release模式下程序闪退。

    分析其原因:

    1.debug模式和release模式的不同:debug模式内存释放不是立即释放,而release模式下,内存是立即释放。在调用block的时候导致闪退。 不过这里我有一个不明白的地方:为什么定义block的时候不带参数,但使用的时候可以传参,程序不报错呢?
    2.还有一点说明:虽说定义的时候不带参数,但是调用的时候带了参数,一旦你使用了这个传过来的参数,程序直接崩溃。

    3.NavigationBar切换背景异常问题

    在切换界面的时候,NavigationBar的background可能会出现闪动异常,通过图层查看,将BackGroundImage初始化即可。即:searBar.backgroundImage = [[UIImage alloc] init];

    4.UILabel设置numberOfLines=0无效

    如果设置无效,加多一个条件即可:
    label.numberOfLines = 0;
    label.preferredMaxLayoutWidth = MaxWidth;

    5.UITableView进入的多样式

    多样式是指:呈现cell的时候,给cell添加一些你想要的动画效果。
    实现:我直接的想法:在代理方法- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath;这里添加cell的动画。但是这样会出现一些问题,会先呈现cell在次加载cell动画。

    真实实现:1.最好将tableView的背景色设置为clear模式。
    2.将tableViewCell的分隔样式去掉self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    3.只给可视的cell(tableView.visibleCells)添加动画即可,不然每次滑入滑出,重新加载都会出现自定义动画。
    4.最关键一点,在加载tableView之后,在添加自定义的cell动画,在添加这个cell动画之前确定tableView cell的个数,在调用[self.tableView reloadData];即可出现你自定义cell的动画了。

    相关文章

      网友评论

      本文标题:iOS开发实战小知识点(一)

      本文链接:https://www.haomeiwen.com/subject/gmptsxtx.html