技术CTO-关注编程入门知识,提供编程入门教程

您的位置: 首页 > 移动开发 > ios > 正文

iOS NSAutoLayout

来源: 技术CTO 阅读:

用NSAutoLayout 纯代码自动布局。在UIScrollView上底部添加视图。却显示在最上面。咋解?
 UIScrollView *baseScrollView = [[UIScrollView  alloc] init];
    [baseScrollView setBackgroundColor:[UIColor whiteColor]];
    baseScrollView.translatesAutoresizingMaskIntoConstraints = NO;
    [self.view addSubview:baseScrollView];
    [baseScrollView release];
    
    NSLayoutConstraint *baseScrollViewConstaints1 = [NSLayoutConstraint constraintWithItem:baseScrollView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeWidth multiplier:1.0 constant:0];
    NSLayoutConstraint *baseScrollViewConstaints2 = [NSLayoutConstraint constraintWithItem:baseScrollView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeHeight multiplier:1.0 constant:0];
    [self.view addConstraint:baseScrollViewConstaints1];
    [self.view addConstraint:baseScrollViewConstaints2];
    
    UILabel *label1 = [[UILabel alloc] init];
    [label1 setText:@"?:|}{'"];
    label1.translatesAutoresizingMaskIntoConstraints = NO;
    [label1 setTextColor:[UIColor redColor]];
    [label1 setBackgroundColor:[UIColor whiteColor]];
    [baseScrollView addSubview:label1];
    [label1 release];
    
    NSDictionary *viewDict = NSDictionaryOfVariableBindings(label1);
    NSArray *viewConstraints1 = [NSLayoutConstraint constraintsWithVisualFormat:@"|-[label1]-|" options:0 metrics:nil views:viewDict];
    NSArray *viewConstraints2 = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[label1]-|" options:0 metrics:nil views:viewDict];
    
    [baseScrollView addConstraints:viewConstraints1];
    [baseScrollView addConstraints:viewConstraints2];

VFL 无法约束控件的水平及垂直居中。
不是水平,及垂直居中的问题,是怎么放置在底端的问题?
用NSLayoutAttributeCenterX或NSLayoutAttributeCenterY不行?
引用 2 楼 u011715727 的回复:
不是水平,及垂直居中的问题,是怎么放置在底端的问题?

同样VFL应该无法描述这种约束关系。
@zhanglei5415 那有什么办法解决这问题吗? 
@zhangao0086  要的是置底,(用NSLayoutAttributeCenterX或NSLayoutAttributeCenterY不行?)这个不是居中吗?

^_^ 如果您热爱技术、热爱编程,想与更多的朋友一起交流学习,欢迎加入本站官方QQ群:345733473 ^_^