【发布时间】:2016-07-03 09:15:47
【问题描述】:
我是 iOS 开发新手,我正在使用 UIStackView。
当我使用StoryBoard 创建两个UILabels 作为UIStackView 的子对象时,以下代码可以使每个UILabel 的渐变背景颜色正常工作。
UILabel *label;
for (int ii = 1; ii < 3; ii++) {
label = [self.view viewWithTag:ii];
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = label.bounds;
gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor yellowColor]CGColor], (id)[[UIColor grayColor]CGColor], nil];
[label.layer insertSublayer:gradient atIndex:0];
UILabel *newLabel = [[UILabel alloc] initWithFrame:label.bounds];
newLabel.backgroundColor = [UIColor clearColor];
newLabel.text = label.text;
[label addSubview:newLabel];
}
但是当我使用下面的代码以编程方式创建两个 UILabels 时,
我上面用于制作每个UILabel 的渐变背景的代码不起作用,背景颜色保持白色。
有人可以帮我解决这个问题吗?
UILabel *myLabel;
myLabel = [[UILabel alloc] init];
[myLabel setText:@"text1"];
[myLabel setTag:1];
[stackView addArrangedSubview:myLabel];
myLabel = [[UILabel alloc] init];
[myLabel setText:@"text2"];
[myLabel setTag:2];
[stackView addArrangedSubview:myLabel];
【问题讨论】:
-
你能用上面的代码看到
UIStackView中的标签吗? -
是的,我可以看到标签,但是没有渐变背景。
标签: ios iphone uistackview