我有一个小问题,希望有人可以帮我解决...我搜索网并做了一些尝试,但我无法解决我的问题。
我创建了一个FOR循环,播放通过数组获得的指定数量的标签,正如您在下面发布的代码中所看到的那样......
现在我的问题是如何以编程方式插入约束。我需要在标签和另一个(水平)之间有一个特定的空间。
示例:
如果我标签4我希望这些可以带走水平空间的iPhone显示器SE都是iPhone 7 Plus ..
所以我的问题是如何在每个标签之间设置一个特定的空格并传入FOR循环?
CGFloat padding = 0;
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"INFO UNIVERSITARIE",@"INFO GENERALI", @"TROVA SEDI", nil];
for (NSInteger i = 0; i < array.count; i ++) {
NSString *valueText = [array objectAtIndex:i];
UILabel *label = [[UILabel alloc] init];
label.frame = CGRectMake(padding *i, 0, 50, 30);
label.text = [NSString stringWithFormat:@"%@", valueText];
label.textColor = [UIColor whiteColor];
label.font = [UIFont fontWithName:@"HelveticaNeue" size:12];
[label sizeToFit];
[_baseView addSubview:label];
padding = label.frame.size.width;
label.translatesAutoresizingMaskIntoConstraints = NO;
}
答案 0 :(得分:0)
研究这一点,我记得UIStackView
是我们的新朋友,专门针对这个问题而设计。
NSArray *array = @[ @"INFO UNIVERSITARIE",@"INFO GENERALI", @"TROVA SEDI" ];
NSMutableArray *labels = [NSMutableArray array];
for (NSString *string in array) {
UILabel *label = [[UILabel alloc] init];
label.text = string;
[labels addObject:label];
}
UIStackView *stackView = [[UIStackView alloc] initWithArrangedSubviews:labels];
stackView.axis = UILayoutConstraintAxisHorizontal;
stackView.spacing = 12.0;
stackView.frame = self.view.bounds;
[self.view addSubview:stackView];
我自己刚刚了解了这一点,但我尝试了这段代码并且效果很好。