UIView连接到2个IBOutlets

时间:2012-11-19 14:03:17

标签: iphone ios iboutlet

我有一个视图控制器,它已通过xib连接。在那个xib我有一个单独的视图,我将这个相同的视图连接到2个不同的IBoutlet并将此视图添加到主视图。但在插座中,我添加的视图仅可见。第一个是无法看到的。为什么呢?

2 个答案:

答案 0 :(得分:3)

虽然可以将两个出口连接到同一个视图对象,但很少这样做。在您的情况下,这只是一个UIView(子类)对象。两个IBOutlet'指针'都指向相同的(个体)对象。

如果你现在同时设置,第一个和第二个,布局它们等,那么你会得到只有第二个可见的印象。这就是你所说的。

让我们假设您先放置左视图,然后右视图放置,然后您会看到只有右视图可见。
如果你现在转换布局语句的安全性(无论是什么,位置,大小,框架,颜色......)和布局右视图然后左视图,只会出现左视图。这只是因为您设法将同一个对象链接到两个IBOutlet。通过布局第二个,您只需覆盖您在第一手中设置的布局数据。

从我在你的案例中读到的内容我建议在IB中创建(可能是重复的)一个额外的UIView(或任何子类),并相应地将它们链接到一个IBOutlet。

答案 1 :(得分:0)

是的,您可以将两个IBOutlet连接到一个对象,但我认为它不会对您有所帮助,

就像你用两个名字X和Y打电话给同一个人,然后问,嘿!你是Y,X在哪里我看不到他:)。

我可以建议如果你想要同时看到两个子视图,他们添加两个UIViews,每个UIViews连接到一个IBOutlet,否则只使用连接到单个IBOutlet的单个UIView并尝试制作一个切换逻辑 例如:

if(isConditionForViewOne){
//Change UI accordingly
  view.backgroundColor  =  [UIColor orangeColor];
}
else if(isConditionForViewTwo){
//Change UI accordingly
view.backgroundColor  =  [UIColor yellowColor];
}