【问题标题】:Changing the colour of UIView that is created dynamically更改动态创建的 UIView 的颜色
【发布时间】:2014-04-07 06:49:39
【问题描述】:

我正在动态创建一个UIView 及其子视图(例如 UITextfield、UIButton 等)(通过从 JSON 读取)

我正在为所有UIView 提供标签并尝试按标签调用。

例如,我试图在另一个视图中更改视图的背景颜色。

父视图的标签是1,子视图的标签是11。

我的示例代码如下;

UIView *temp = [self.view viewWithTag:1];

if([[temp viewWithTag:11] isKindOfClass:[UIView class]])
{
    [((UIView*)[temp viewWithTag:11]) setBackgroundColor:[UIColor blackColor]];
}

但是没有变化,没有效果。

你能帮我解决这个问题吗?

【问题讨论】:

  • 如果阻塞,它会进入内部吗?
  • 它工作正常您的代码没问题,所以请再次检查您是否已将标签正确分配给您的视图
  • 除了你的问题,不要给你的视图分配数字,而是使用Enum或常量。
  • NeverHopeless 是的,它进入 if 块,JaswantSinghRajpurohit 关键是动态创建可能是不改变视图的问题
  • @erdemgc 是否动态创建都没有关系。在进程结束时,两种方式都返回一个指向 UI 对象的指针。问题是其他问题,例如标签设置不正确等

标签: ios objective-c uiview tags


【解决方案1】:
#define PARENT_VIEW_TAG 1
#define CHILD_VIEW_TAG 11

    UIView *parentView = [self.view viewWithTag:PARENT_VIEW_TAG];

    for (UIView *vw in [parentView subviews]) {

        if(vw.tag == CHILD_VIEW_TAG)
        {
            [vw setBackgroundColor:[UIColor blackColor]];
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多