ios开发冷知识小笔记

2017-01-12  本文已影响18人  大布溜

1.UIImageView重写drawRect方法后drawRect是不会被调用的。

网上的解释是说“UIImageView是专门为显示图片做的控件,用了最优显示技术,是不让调用darwrect方法, 要调用这个方法,只能从uiview里重写”。

2.OC中几何数据类型的便捷写法

CGPoint, CGSize, CGRect 这一类成为几何数据类型...实质上都是结构体 而不是对象....所以初始化时不必加*

此外, 初始化时除了用, 例如CGRectMake来初始化以为,还有一些便捷的写法, 如下

```

rect = {1,2,3,4};

rect = {.origin = {1,1}, size = {2,2}};

rect = {.origin = {.x = 1, .y =2} , size = {.x = 2, .y = 2}};

//甚至可以省略某一部分,比如:

rect = {size = CGSizeMake(1,1)};

//类似的还有各种写法,不累述了..

```

3.CGRectInset  和 CGRectOffset 

比起CGRectMake,这两个方法更容易被忽略,,,不过有些时候相当有用...但是要弄清楚他们之间的差别...大概如下图..

4.字符串组成的数组可以直接用下面的这个方法创建,

```

NSArray *item = [@"one*two*three" compontsSeparatedByString:"*"];

```

5.大部分控件可以用带属性的字符串(Attributed String)来完成设置文本属性

```

[myButton setAtrributedTitle:attributedString forState:UIControlStateNormal];

```

6.编译器编译时会把用空格(实测后,包括换行)分割的字符串连在一起

```

    NSString*str =@"123"

    @"456"  @"789"

    @"101112"

    @"dhfljl";

    NSLog(@"%@",str);

```

不论这段代码中间有多少空格和换行,编译器都会自动把他们连接成一个字符串.

上一篇下一篇

猜你喜欢

热点阅读