美文网首页
iOS 12 UIAlertController 文字对齐属性

iOS 12 UIAlertController 文字对齐属性

作者: 不知蜕变的挣扎 | 来源:发表于2018-10-17 16:20 被阅读93次

iOS 12系统版本以后,原本用UIAlertController去遍历图层获取UILabel的方法失效,原因是UILabel的图层位置改变了

iOS 12 之前:

UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"更新提示!" message:tips preferredStyle:UIAlertControllerStyleAlert];
    UIView *subView1 = alert.view.subviews[0];
    UIView *subView2 = subView1.subviews[0];
    UIView *subView3 = subView2.subviews[0];
    UIView *subView4 = subView3.subviews[0];
    UIView *subView5 = subView4.subviews[0];
//分别拿到title 和 message 可以分别设置他们的对齐属性
    UILabel *title = subView5.subviews[0];
    UILabel *message = subView5.subviews[1];
    message.textAlignment = NSTextAlignmentLeft;

iOS 12 之后:

UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"更新提示!" message:tips preferredStyle:UIAlertControllerStyleAlert];
    UIView *subView1 = alert.view.subviews[0];
    UIView *subView2 = subView1.subviews[0];
    UIView *subView3 = subView2.subviews[0];
    UIView *subView4 = subView3.subviews[0];
    UIView *subView5 = subView4.subviews[0];
//分别拿到title 和 message 可以分别设置他们的对齐属性
    NSArray * viewArray = subView5.subviews;
    int index = [self getIndex];
    UILabel *title = viewArray[index + 0];
    UILabel *message = viewArray[index + 1];
    message.textAlignment = NSTextAlignmentLeft;

- (int) getIndex{
    NSString* phoneVersion = [[UIDevice currentDevice] systemVersion];
    int index;
    if ([phoneVersion doubleValue] >= 12.0) {
        index = 1;
    } else {
        index = 0;
    }
    return index;
}

相关文章

网友评论

      本文标题:iOS 12 UIAlertController 文字对齐属性

      本文链接:https://www.haomeiwen.com/subject/bcsrzftx.html