江苏万和IT教育 发表于 2016-7-26 14:33:09

iOS开发中会遇到的一些坑,你不得不防 南京iOS培训

  作为一个iOS开发工程师,时常碰到一些比较棘手的问题,这里跟随南京万和iOS培训一起来看一下,希望大家以后不再入坑。
  这篇文章的内容包含:
  ◎UITableViewCell的真实结构  ◎在iOS的环境下使用正则表达式  ◎如何优雅的隐藏tabbar  ◎如何修改navigationbar的颜色  ◎运行时修改使用autolayout的view  ◎navigation controller子view偏移问题  ◎CoreData的使用总结
  1.UITableViewCell的真实结构
  目标是想把UITableview在editing模式下的drag按钮去掉,换成自己的样式,但又想保留原生拖动排序的行为,所以研究了很多方法,最后还是找到了UITableViewCell的结构,并将拖动按钮替换。不多说,上代码。
  http://www.wanho.net/data/upload/ueditor/2016072212021257919ac467a8b.png
  可以看到此时contentView左右都向内缩进了一定的距离,最后有一个view叫UITableViewCellReorderControl,我想就是它了,然后看它的subviews,竟然包含了一个UIImageView,果断替换之,代码如下。
  http://www.wanho.net/data/upload/ueditor/2016072212021257919ac481f0c.png
  此时就完成了将拖动按钮隐藏的功能,但是注意,在这里如果想通过设置reorderControl的frame去改变它的位置是不成功的,我想可能它的布局使用autolayout,并没有深入的再去研究。
  2. 在iOS的环境下使用正则表达式
  在iOS下使用正则似乎挺麻烦的,如果只是想用正则判断格式,那么可以使用NSPredicate:
  http://www.wanho.net/data/upload/ueditor/2016072212021257919ac48ff93.png
  如果要使用正则判断格式,然后获取group的子字符串,就比较麻烦了,并没有Swift的原生方法来做,必须使用NSRegularExpression,话不多说,上代码:
  http://www.wanho.net/data/upload/ueditor/2016072212021257919ac49df32.png
  3. 如何优雅的隐藏tabbar
  很多APP都使用TabBarController套NavigationController的方法来作为应用的框架,那么隐藏TabBar就成了一个必要的功能,目前最简单的方法还是使用hidesBottomBarWhenPushed来实现,最简单的方法就是在要隐藏tab bar的Controller里写入下面的方法,来覆默认值。
  http://www.wanho.net/data/upload/ueditor/2016072212021257919ac4ac188.png
  4. 如何修改navigationbar的颜色
  http://www.wanho.net/data/upload/ueditor/2016072212021257919ac4b8f9b.png
  5. 运行时修改使用autolayout的view
  方案是运行时给view添加constraint。
  http://www.wanho.net/data/upload/ueditor/2016072212021257919ac4c6b3c.png
  view1(的顶部) = view2(的顶部) * 1 + 2
  这个代码的意思是把view1的顶部放在view2的顶部向下两个像素的地方(因为此时view1是view2 的subview,所以达到的效果就是view1在view2顶部向下2个像素的地方)
  如下是所有属性:
  NSLayoutAttributeLeft    视图的左边  NSLayoutAttributeRight    视图的右边  NSLayoutAttributeTop    视图的上边  NSLayoutAttributeBottom    视图的下边  NSLayoutAttributeLeading    视图的前边  NSLayoutAttributeTrailing    视图的后边  NSLayoutAttributeWidth    视图的宽度  NSLayoutAttributeHeight    视图的高度  NSLayoutAttributeCenterX    视图的中点的X值  NSLayoutAttributeCenterY    视图中点的Y值  NSLayoutAttributeBaseline    视图的基准线  NSLayoutAttributeNotAnAttribute    无属性
  6. navigation controller子view偏移问题
  场景是这样的:页面使用UItableview布局,由于页面比较复杂,在push进去再出来时第一个cell会向下偏移。解决方案:
  http://www.wanho.net/data/upload/ueditor/2016072212021257919ac4d6073.png
  想学iOS开发吗?那就来江苏万和计算机培训中心吧。江苏万和作为南京专业的iOS培训中心专门培养iOS移动开发人才,欢迎广大有志于此行业发展的学员们加入。

jswanho 发表于 2016-7-26 14:38:06

想要学习iOS开发的小伙伴,可以进入官网了解:http://www.wanho.net/
现在暑假还有学IT技术,送旅游的活动。想要学IT的小伙伴,走起来~{:6_290:}{:6_290:}{:6_290:}{:6_290:}
页: [1]
查看完整版本: iOS开发中会遇到的一些坑,你不得不防 南京iOS培训