iOS 验证 uiview 已更改颜色
Posted
技术标签:
【中文标题】iOS 验证 uiview 已更改颜色【英文标题】:iOS verify the uiview has change color 【发布时间】:2014-09-04 21:14:51 【问题描述】:我正在尝试更改 UIView 的背景颜色。这是我的代码:
UIView *myView = [self.view viewWithTag:21];
[self.view bringSubviewToFront:myView];
myView.backgroundColor = [UIColor yellowColor];
我验证了:
if ([myView.backgroundColor isEqual:[UIColor yellowColor]])
NSLog(@"my view is yellow!");
但在 iPhone 的屏幕上永远不会改变颜色。我在不同的项目中尝试了相同的代码,它工作得很好。有谁知道哪里出了问题?
【问题讨论】:
抱歉,我正在清理我的代码。我做了更正 你确定这发生在主线程中吗? 如何检查是否是主线程? 检查***.com/questions/7237473/… 【参考方案1】:确保您在主线程中进行 UI 更改,而不是在完成处理程序或任何其他后台任务中。
【讨论】:
【参考方案2】:嗯,你正在做一些从代码 sn-p 中有点不清楚的事情。
该代码对于您正在尝试执行的操作绝对正确,但我假设您遇到该问题是由于您程序中其他地方的代码。
例如:如果您在某个时候隐藏视图,您将不会获得颜色变化。如果视图曾经以某种方式“锁定”,您就会遇到问题。或者,如果此操作在也可能导致挂起的后台线程上进行。
所以我会查看其余的代码,看看是否有其他东西阻碍了它。
【讨论】:
我明白这很奇怪。我什至尝试重置视图的位置“myView.frame = CGRectMake(0, 0,280,323);”并且不起作用。 发生了一些可疑的事情。但是如果没有你的所有代码,这将很难调试以上是关于iOS 验证 uiview 已更改颜色的主要内容,如果未能解决你的问题,请参考以下文章
使用 CAGradientLayer 类更改 UiView IOS 的渐变背景图层颜色
iOS 7.1 中的 UITabBarItem 更改徽章颜色
当 UIViewController 显示弹出框时,更改 CALayer 颜色与 UIView tintColor 同步