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);
```
不論這段代碼中間有多少空格和換行,編譯器都會自動把他們連接成一個字符串.