子视图未在子类UIView中绘制

时间:2011-10-27 05:41:38

标签: iphone ios cocoa-touch uiview

我有一个子类UIView,它不会绘制它的子视图。或者至少,它没有显示它的子视图。整个视图从笔尖加载。

另外,奇怪的是,它不会绘制我在IB中设置的背景。 (我正在使用Xcode 4.2)。

但是它会绘制我在awakeFromNib中指定的父视图,例如背景,边框和角落。

opaque属性设置为NO。任何建议表示赞赏!

2 个答案:

答案 0 :(得分:0)

我认为如果你覆盖drawRect,你可能会得到那个结果。尝试评论一下,看看会发生什么。如果您想要绘制自己的内容并包含子视图,则可以通过在drawRect的开头调用[super drawRect]来执行此操作。

答案 1 :(得分:0)

从笔尖加载视图时,例如使用

[[NSBundle mainBundle] loadNibNamed:  owner:self]

您仍然需要将加载的视图作为子视图添加到窗口中当前可见的视图之一,以使该视图可见。从您的所有者那里获得一个插座可确保加载视图并且您有一个对它的引用 - 但仅此一项并不会导致它作为子视图添加到所有者。

所以(假设self是父视图和nib中的所有者)首先要确保你肯定在笔尖中设置了从所有者到正在加载的视图的插座,然后你正在做

[self addSubview:loadedView]

(加载的视图是笔尖中的所有者为自己的视图。)