【发布时间】:2010-07-20 19:16:38
【问题描述】:
我的 iPhone 应用中有一个分组样式的 UITableView。 现在我想用图像、标签和活动指示器自定义节标题。
为此,我创建了一个新的 UIViewController 子类和一个 XIB 文件。我将 UIImageView、UILabel 和 UIActivityIndicatorView 作为 IBOutlet 属性添加到 ViewController,并将它们连接到我在 Interface Builder 中放入 XIB 的控件。
在制作我的 UITableView 的类中,我设置了节标题(两个,都是上面定义的 ViewController 的实例)并设置它们的属性(图像和文本)。然后我在 tableView 委托中返回 ViewControllers 视图:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
if (section == 0) {
return [favoritesSectionHead view];
} else {
return [serverlistSectionHead view];
}
}
这显示了我在 Interface Builder 中定义的视图,没有自定义图像和文本。 我知道为什么会发生这种情况(ViewController 的视图是在第一次需要时创建的,在我的代码中,这是我在 viewForHeaderInSection 方法中返回它时 --> 当我尝试设置自定义值时,视图仍然为零)但我没有不知道怎么解决。
你能帮帮我吗?在我返回之前我需要做什么来初始化视图? UITableView 文档告诉我不要手动调用“loadView”...
提前致谢, 标记。
【问题讨论】:
-
你可能想从你的 if() 语句中拉出返回值,它会抛出警告,因为编译器运行代码,它不会像我们一样通过步骤,所以它到达终点并且没有得到“返回 someObject”,并且它不知道您在到达终点之前已经抛出了一个值。我设置了一个 tempObject,例如: UIView *tempView;然后我将它设置为等于 if() 语句中所需的值,如您的 return [favoritesSectionHead view];然后在方法结束时,我返回 tempObject,如“return tempView;”没有警告!
标签: iphone uitableview uiviewcontroller interface-builder