【发布时间】:2023-03-23 10:23:01
【问题描述】:
我正在尝试将渐变层添加到我的视图中,第一次运行代码时它会完美地插入层,但每 10 秒我再次运行相同的函数来更改层,但它不会更新层。
if ([[self.view.layer sublayers] count]>1) {
CAGradientLayer *gradientLayer=[ColorUtilities randomGradient];
gradientLayer.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
[self.view.layer insertSublayer:gradientLayer atIndex:0];
//[self.view.layer replaceSublayer:[[self.view.layer sublayers] objectAtIndex:0] with:gradientLayer];
}
这里[ColorUtilities randomGradient] 每次都会给我一个随机层。
为什么层atindex:0 没有更新?
【问题讨论】:
-
代码调用的是哪个线程?如果它不是主线程,你会期望视图没有更新。
-
我没有复制粘贴整个代码,但它在
dispatch_async(dispatch_get_main_queue(), ^{内部被调用
标签: ios objective-c uiview colors calayer