iOS开发的那些坑

最近重新拿起了iOS的开发,使用OC和Swift混编,碰到了一些比较棘手的问题,在这里记录下来,方便自己以后或他人不再入坑。这篇文章的内容包含:

  1. UITableViewCell的真实结构
  2. 在iOS的环境下使用正则表达式
  3. 如何优雅的隐藏tabbar
  4. 如何修改navigationbar的颜色
  5. 运行时修改使用autolayout的view
  6. navigation controller子view偏移问题
  7. CoreData的使用总结
  8. 解决git的Xcode冲突

1.UITableViewCell的真实结构

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


//打印出来的自定义的cell在editing模式下的结构    
(lldb) po self
<QKZhi_iOS.EditingCell: 0x7c148800; baseClass = UITableViewCell; frame = (0 0; 320 56); autoresize = W; layer = <CALayer: 0x7d086b40>>

(lldb) po self.subviews
 5 elements
  - [0] : <UITableViewCellContentView: 0x7d086d10; frame = (38 0; 242 55.5); opaque = NO; gestureRecognizers = <NSArray: 0x7d0882b0>; layer = <CALayer: 0x7d086de0>>
  - [1] : <_UITableViewCellSeparatorView: 0x7d087c40; frame = (15 55; 305 1); layer = <CALayer: 0x7d0852c0>>
  - [2] : <_UITableViewCellSeparatorView: 0x7b163240; frame = (15 55.5; 305 0.5); layer = <CALayer: 0x7b162de0>>
  - [3] : <UITableViewCellEditControl: 0x7b164700; frame = (0 0; 47 56); opaque = NO; layer = <CALayer: 0x7b164950>>
  - [4] : <UITableViewCellReorderControl: 0x7b164d10; frame = (268 0; 52 56); opaque = NO; autoresize = LM; layer = <CALayer: 0x7b164f60>>

(lldb) po self.subviews.last
   Optional<UIView>
    - Some : <UITableViewCellReorderControl: 0x7b164d10; frame = (268 0; 52 56); opaque = NO; autoresize = LM; layer = <CALayer: 0x7b164f60>>

(lldb) po self.subviews.last?.subviews
   Optional<Array<UIView>>
     Some : 1 elements
      - [0] : <UIImageView: 0x7b165130; frame = (15 24; 22 8.5); opaque = NO; userInteractionEnabled = NO; tag = 1; layer = <CALayer: 0x7b165210>>

(lldb)

KK笔记:kknotes.com
本文链接地址: iOS开发的那些坑

转载须以超链接形式标明文章原始出处和作者信息及版权声明

Continue Reading

如何设计优雅的类结构(clean code阅读笔记之九)

 类结构如何写出优雅的类结构

注:正文中的引用是直接引用作者的话,两条横线中间的段落的是我自己的观点,其他大约都可以算是笔记了。

「Clean Code」这本书从这一章开始文风有些变化,感觉比较乱,很多概念在之前的章节也提到过,因为这本书的某些章节是不同的人编写的,所以这种情况也难免,所以可能会有些小节我会几句话简单带过。

本章讲的是类的组织结构,其实很多这些概念我们在学校里学习OOP时可能都有学到过,有些人可能会觉得讲得比较虚,但文中确实有些细节还是解开了一些之前的疑惑,姑且当做复习面向对象的概念也好。


在前面的章节中详细讨论了命名、方法和数据结构等等这些概念,它们能够帮助我们更好地理解在代码行或者代码块的级别里如何写出简洁优雅。在此基础上,我们还是要在更高的层面上去探究代码简洁之道。在现代的高级语言编程世界里,类是系统的基本组成部分,这章就着重讨论一下如何写出好的类。

KK笔记:kknotes.com
本文链接地址: 如何设计优雅的类结构(clean code阅读笔记之九)

转载须以超链接形式标明文章原始出处和作者信息及版权声明

Continue Reading