将项目添加到外部类别的子视图

问题描述:

我已经创建了一个UIView,并可以通过使用[self.topView addSubview:image]添加内容。现在我正在导入一个类来创建一个有一堆按钮的日历。我可以把它放在同一个类中,并说[self.topView addSubview:button],但如果它在另一个类中,我如何将它添加到拥有它的类的子视图?希望这是有道理的...将项目添加到外部类别的子视图

你需要在你的外部类中引用拥有该视图的类(称之为“所有者类”),并且可能在你的所有者类中编写一个方法来添加一个传递类鉴于你选择的子视图。沿线的东西:

- (void) insertSubview:(UIView*)newView { 
    if (newView) [self.topView addSubview:newView]; 
} 

设置参考可以通过多种方式完成,所以我会把那一个留给你。

+0

你是说我需要将子视图传递给外部类吗? – Rudiger 2010-01-05 05:55:32

+0

你可以将子视图传递给其他类,但这会破坏封装,这是不好的做法。我建议你向拥有子视图的类添加一个方法,并使用它来允许所有者类执行必要的工作,以便将视图添加到层​​次结构中。 – rpj 2010-01-05 05:58:53