设为首页收藏本站language 语言切换
查看: 966|回复: 1
收起左侧

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

[复制链接]
发表于 2016-7-26 14:33:09 | 显示全部楼层 |阅读模式
  作为一个iOS开发工程师,时常碰到一些比较棘手的问题,这里跟随南京万和iOS培训一起来看一下,希望大家以后不再入坑。

  这篇文章的内容包含:

  ◎UITableViewCell的真实结构
  ◎在iOS的环境下使用正则表达式
  ◎如何优雅的隐藏tabbar
  ◎如何修改navigationbar的颜色
  ◎运行时修改使用autolayout的view
  ◎navigation controller子view偏移问题
  ◎CoreData的使用总结

  1.UITableViewCell的真实结构

  目标是想把UITableview在editing模式下的drag按钮去掉,换成自己的样式,但又想保留原生拖动排序的行为,所以研究了很多方法,最后还是找到了UITableViewCell的结构,并将拖动按钮替换。不多说,上代码。

  

                               
登录/注册后可看大图

  可以看到此时contentView左右都向内缩进了一定的距离,最后有一个view叫UITableViewCellReorderControl,我想就是它了,然后看它的subviews,竟然包含了一个UIImageView,果断替换之,代码如下。

  

                               
登录/注册后可看大图

  此时就完成了将拖动按钮隐藏的功能,但是注意,在这里如果想通过设置reorderControl的frame去改变它的位置是不成功的,我想可能它的布局使用autolayout,并没有深入的再去研究。

  2. 在iOS的环境下使用正则表达式

  在iOS下使用正则似乎挺麻烦的,如果只是想用正则判断格式,那么可以使用NSPredicate:

  

                               
登录/注册后可看大图

  如果要使用正则判断格式,然后获取group的子字符串,就比较麻烦了,并没有Swift的原生方法来做,必须使用NSRegularExpression,话不多说,上代码:

  

                               
登录/注册后可看大图

  3. 如何优雅的隐藏tabbar

  很多APP都使用TabBarController套NavigationController的方法来作为应用的框架,那么隐藏TabBar就成了一个必要的功能,目前最简单的方法还是使用hidesBottomBarWhenPushed来实现,最简单的方法就是在要隐藏tab bar的Controller里写入下面的方法,来覆默认值。

  

                               
登录/注册后可看大图

  4. 如何修改navigationbar的颜色

  

                               
登录/注册后可看大图

  5. 运行时修改使用autolayout的view

  方案是运行时给view添加constraint。

  

                               
登录/注册后可看大图

  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会向下偏移。解决方案:

  

                               
登录/注册后可看大图

  想学iOS开发吗?那就来江苏万和计算机培训中心吧。江苏万和作为南京专业的iOS培训中心专门培养iOS移动开发人才,欢迎广大有志于此行业发展的学员们加入。

发表于 2016-7-26 14:38:06 | 显示全部楼层
想要学习iOS开发的小伙伴,可以进入官网了解:http://www.wanho.net/
现在暑假还有学IT技术,送旅游的活动。想要学IT的小伙伴,走起来~
沙发 2016-7-26 14:38:06 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-2 16:42 , Processed in 0.064933 second(s), 16 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表