大佬教程收集整理的这篇文章主要介绍了ios – 使用自动布局在调整大小时平均更改空格,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
TOP – 40分 – SUBVIEW 1 – 60分 – SUBVIEW 2 – 80分 – SUBVIEW 3 – 80分 – BOTTOM
我理解如何使用自动布局来确保每个子视图保持其高度和宽度,并且我可以在3.5或4英寸iPhone屏幕上对齐所有内容.
但我无法弄清楚我需要做出什么样的限制,以便如果它对齐3.5英寸屏幕,然后进入4英寸屏幕,每个间距将按比例增加(例如40点将达到47,60至71,80至95 – 或其左右).
这可能吗?或者我是否需要使元素之@L_696_6@所有间距相等? (如果是这样,我怎么还能让它同样调整大小?)
我是Auto Layout的新手,所以如果我遗漏了任何东西,或者还没弄清楚我的意思,请告诉我,谢谢.
-(void)viewDidLoad { [super viewDidLoad]; NSMutableDictionary *viewsDict = [NSMutableDictionary Dictionary]; for (int i=1; i<5; i++) { // Labels with titles UILabel *b = [[UILabel alloc] initWithFrame:CGRectMake(0,150,44)]; b.text = @"This is my label"; [b setTranslatesAutoresizingMaskIntoConsTraints:NO]; [viewsDict setObject:b forKey:[NSString StringWithFormat:@"b%d",i]]; } for (int i=1; i<6; i++) { // Spacer labels UILabel *l = [[UILabel alloc ]init]; [l setTranslatesAutoresizingMaskIntoConsTraints:NO]; [viewsDict setObject:l forKey:[NSString StringWithFormat:@"l%d",i]]; } for (id obj in viewsDict.allKeys) [self.view addSubview:viewsDict[obj]]; NSArray *consTraints = [NSLayoutConsTraint consTraintsWithVisualFormat:@"V:|[l1][b1][l2(==l1)][b2][l3(==l1)][b3][l4(==l1)][b4][l5(==l1)]|" options:NSLayoutFormatAlignAllLeading metrics:nil views:viewsDict]; NSArray *consTraints2 = [NSLayoutConsTraint consTraintsWithVisualFormat:@"|-[b1]" options:0 metrics:nil views:viewsDict]; [self.view addConsTraints:consTraints]; [self.view addConsTraints:consTraints2]; }
为了使空间不同,我认为你必须使用较长形式的表达约束,而不是视觉格式.以下代码似乎对我有用.我使用与上面相同的视图定义,除了我将标题标签的数量减少到3,将间隔符减少到4以匹配您的问题.相对间距应与示例中的2:3:4:4相同.
NSLayoutConsTraint *con1 = [NSLayoutConsTraint consTraintWithItem:self.view attribute:NSLayoutAttributeTop relatedBy:0 toItem:viewsDict[@"l1"] attribute:NSLayoutAttributeTop multiplier:1 constant:0]; NSLayoutConsTraint *con2 = [NSLayoutConsTraint consTraintWithItem:viewsDict[@"l1"] attribute:NSLayoutAttributeBottom relatedBy:0 toItem:viewsDict[@"b1"] attribute:NSLayoutAttributeTop multiplier:1 constant:0]; NSLayoutConsTraint *con3 = [NSLayoutConsTraint consTraintWithItem:viewsDict[@"b1"] attribute:NSLayoutAttributeBottom relatedBy:0 toItem:viewsDict[@"l2"] attribute:NSLayoutAttributeTop multiplier:1 constant:0]; NSLayoutConsTraint *con4 = [NSLayoutConsTraint consTraintWithItem:viewsDict[@"l2"] attribute:NSLayoutAttributeBottom relatedBy:0 toItem:viewsDict[@"b2"] attribute:NSLayoutAttributeTop multiplier:1 constant:0]; NSLayoutConsTraint *con5 = [NSLayoutConsTraint consTraintWithItem:viewsDict[@"b2"] attribute:NSLayoutAttributeBottom relatedBy:0 toItem:viewsDict[@"l3"] attribute:NSLayoutAttributeTop multiplier:1 constant:0]; NSLayoutConsTraint *con6 = [NSLayoutConsTraint consTraintWithItem:viewsDict[@"l3"] attribute:NSLayoutAttributeBottom relatedBy:0 toItem:viewsDict[@"b3"] attribute:NSLayoutAttributeTop multiplier:1 constant:0]; NSLayoutConsTraint *con7 = [NSLayoutConsTraint consTraintWithItem:viewsDict[@"b3"] attribute:NSLayoutAttributeBottom relatedBy:0 toItem:viewsDict[@"l4"] attribute:NSLayoutAttributeTop multiplier:1 constant:0]; NSLayoutConsTraint *con8 = [NSLayoutConsTraint consTraintWithItem:viewsDict[@"l4"] attribute:NSLayoutAttributeBottom relatedBy:0 toItem:self.view attribute:NSLayoutAttributeBottom multiplier:1 constant:0]; NSLayoutConsTraint *con9 = [NSLayoutConsTraint consTraintWithItem:viewsDict[@"l1"] attribute:NSLayoutAttributeHeight relatedBy:0 toItem:viewsDict[@"l2"] attribute:NSLayoutAttributeHeight multiplier:.66 constant:0]; NSLayoutConsTraint *con10 = [NSLayoutConsTraint consTraintWithItem:viewsDict[@"l1"] attribute:NSLayoutAttributeHeight relatedBy:0 toItem:viewsDict[@"l3"] attribute:NSLayoutAttributeHeight multiplier:.5 constant:0]; NSLayoutConsTraint *con11 = [NSLayoutConsTraint consTraintWithItem:viewsDict[@"l1"] attribute:NSLayoutAttributeHeight relatedBy:0 toItem:viewsDict[@"l4"] attribute:NSLayoutAttributeHeight multiplier:.5 constant:0]; NSLayoutConsTraint *con12 = [NSLayoutConsTraint consTraintWithItem:viewsDict[@"b1"] attribute:NSLayoutAttributeLeading relatedBy:0 toItem:self.view attribute:NSLayoutAttributeLeading multiplier:1 constant:100]; NSLayoutConsTraint *con13 = [NSLayoutConsTraint consTraintWithItem:viewsDict[@"b2"] attribute:NSLayoutAttributeLeading relatedBy:0 toItem:self.view attribute:NSLayoutAttributeLeading multiplier:1 constant:100]; NSLayoutConsTraint *con14 = [NSLayoutConsTraint consTraintWithItem:viewsDict[@"b3"] attribute:NSLayoutAttributeLeading relatedBy:0 toItem:self.view attribute:NSLayoutAttributeLeading multiplier:1 constant:100]; NSArray *consTraints = @[con1,con2,con3,con4,con5,con6,con7,con8,con9,con10,con11,con12,con13,con14]; [self.view addConsTraints:consTraints];
以上是大佬教程为你收集整理的ios – 使用自动布局在调整大小时平均更改空格全部内容,希望文章能够帮你解决ios – 使用自动布局在调整大小时平均更改空格所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。