美文网首页iOS
开发中GET的技能点

开发中GET的技能点

作者: WarMap | 来源:发表于2016-03-31 17:13 被阅读20次

    说明:本文记录一些开发中遇到的小技能点,如果你有更好的方法还望不吝赐教。👊

    UITableView

    做为最常用的UI控件,UITableview的人气那是相当的高啊。想象力没有天花板的设计大大(maybe产品菊苣)已经玩出了花(bian)样(tai)。下面来看一下如何满足他们。

    1. 和cell等宽的分割线
    • iOS7的话,一句搞定(iOS7以上的话只有空cell的分割线才会顶到头部)
      cell.separatorInset = UIEdgeInsetsZero;
      //如果全部cell都要这样 可这样设置
      self.tableView.separatorInset = UIEdgeInsetsZero;//就像tableview的rowHeight一样
    • 哪有只支持iOS7的公司,so
      //这两个属性均为Available in iOS 8.0 and later
      cell.preservesSuperviewLayoutMargins = NO;
      cell.layoutMargins = UIEdgeInsetsZero;
    1. zPosition属性可以明显改变屏幕上图层的顺序,但不能改变事件传递的顺序(摘自iOS核心动画高级技巧

    GCD

    1. 创建队列并设置优先级
     dispatch_queue_t serialQueue = dispatch_queue_create("com.mapeng.serialqueue", DISPATCH_QUEUE_SERIAL);
    dispatch_set_target_queue(serialQueue, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0));```
    
    
    #其他
    1. UUID能够唯一标识每一台设备
    
    • (NSString *)UUID {
      KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"HuangyibiaoAppID" accessGroup:@"com.huangyibiao.test.group"];
      NSString *UUID = [wrapper objectForKey:(__bridge id)kSecValueData];
      if (UUID.length == 0) {
      UUID = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
      [wrapper setObject:UUID forKey:(__bridge id)kSecValueData];
      }
      return UUID;
      }```
    1. 如果同时重写了属性的getter和setter方法,系统就不会生成对应的ivar。
    • 手动创建 ivar
    • 使用@synthesize propertyName = _propertyName;
    1. @import(模块)
      模块在语义上把框架和import语句封装到了代码中,而不是把框架的内容复制粘贴到代码中。模块会把H个头文件预编译到动态链接库dylib中,并会自动链接,这样就能把编译时间从O(S*H)降低到O(S+H)。需在Build Setting下打开Enable Modules

    NSArray

    1.按字母顺序排序(Apple's documentation for details)
    sortedArray = [anArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];

    相关文章

      网友评论

        本文标题:开发中GET的技能点

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