前言

上周末去见老同学了,week3就不写了=。= 都是借口啊,来看看这周碰上一些什么问题。

问题列表

  1. edgesForExtendedLayout
  2. 获取版本号
  3. 文本自动调整大小
  4. AppStore, Settings页面跳转

edgesForExtendedLayout

经常会碰到的一个问题:UITabBarController包含多个UINavgationController,每个UINavgationController又包含着自己的ViewController。这个时候ViewController的frame占据了整个屏幕(既包括了NavBar的地方,又包括了TabBar的地方),很烦;如何让这样的ViewController的View只占据NavBar和TabBar之间的区域呢?
这时就需要edgesForExtendedLayout属性了。
edgesForExtendedLayout是UIViewController的一个属性,它只在ViewController嵌在其他容器内时才起作用,比如UINavgationController。默认的值是UIRectEdgeAll,将它设置为UIRectEdgeNone时可以解决上述问题。如下👇

1
2
// 在ViewController的viewDidLoad里面设置
self.edgesForExtendedLayout = UIRectEdgeNone;

效果如下👇
edgesForExtendedLayout

获取版本号

1
NSString *version = [NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];

文本自动调整大小

UILabel一下2个属性,可以让文本字体大小自动调整以适应UILabel的frame:

  1. adjustsFontSizeToFitWidth: 该属性默认为NO。当设置它为YES时,当文本的长度超过UILabel时,会自动缩小文本字体,以适应UILabel的frame。该属性要配合minimumScaleFactor使用。
  2. minimumScaleFactor: 该属性表示UILabel的字体最小的缩放程度。它的默认值为0,但并不是说字体大小为0,而是使用当前指定的字体大小。

AppStore, Settings页面跳转

  1. 跳转到AppStore界面
    经常需要对app进行评分,这时就需要跳转到AppStore,跳转方法如下👇
    1
    2
    NSString *appStoreUrlStr = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple    +Software&id=923676989"; // 获取Coding的AppStore的url, 注意这里要将https:换成itms-apps: 貌似是为了避免重定向
    [UIApplication sharedApplication] openURL:[NSURL urlWithString:appStoreUrlStr]; // 跳转到AppStore
  2. 跳转到设置页面
    1
    [UIApplication sharedApplication] openURL:[NSURL urlWithString:UIApplicationOpenSettingsURLString];

参考