1. Frame 和 Bounds的区别
The frame rectangle, which describes the location and size of view in the view's own coordination.
Frame属性定义了视图的大小和位置,通过这个视图的坐标系。
The bounds rectangle, which describes the location and size of view in the superview's coordination.
Bounds属性定义了视图的大小和位置,通过其父视图的坐标系。
图1.
2.让子视图能够同父视图一起调整
当改变视图的边框矩形时,其内嵌子视图的位置和尺寸也往往需要改变,以适应原始视图的尺寸。如果视图的autorizesSubviews属性被声明为YES,其子视图就能够根据autoresizingMask属性的值自动进行尺寸调整。简单配置一下视图的自动尺寸调整掩码往往能得到好的效果;否则,如果是更加复杂的变化,就要通过重载layoutSubviews来实现。
以下是掩码的属性:
UIViewAutoresizingNone | |
UIViewAutoresizingFlexibleHeight | |
UIViewAutoresizingFlexibleWidth | |
UIViewAutoresizingFlexibleLeftMargin | |
UIViewAutoresizingFlexibleRightMargin | |
UIViewAutoresizingFlexibleTopMargin | |
UIViewAutorerizingFlexibleBottomMargin |
3.NSString字符串的大小写问题
可以利用的函数:
1) lowercaseString; 将字符串全部改为小写
2)uppercaseString; 将字符串全部改为大写
3)capitalizedString; 将字符串的第一个字符改为大写
除了以上三种情况,如果遇到更加特殊的情况如何处理?
假设有下面这个情况, 给出 NSString * str, 把str中所有大写换成小写,所有小写换成大写:
return [[NSString alloc] initWithUTF8String:carr];