自定义UIView的tableView委托方法
问题描述:
我想创建我自己的自定义UIView分组UITableView
的标题。这是我到目前为止玩的代码:自定义UIView的tableView委托方法
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
Target *aTarget = [targetDictionary objectForKey:[NSNumber numberWithInteger:section]];
UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 20, self.TargetTableView.frame.size.width, 20)];
headerLabel.text = [NSString stringWithFormat:@"%@", aTarget.condition];
headerLabel.textColor = [UIColor whiteColor];
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.TargetTableView.frame.size.width, 200)];
headerView.backgroundColor = [UIColor orangeColor];
// [headerView addSubview:headerLabel];
return [headerView autorelease];
}
几个问题。对于我的headerView,我希望高度为40,但看起来很小。然后我将它改为60,并且我看到它在我的UITableView
中根本没有改变(我在弹出窗口中呈现这些数据,我认为这不应该是重要的)。所以我做了200的高度,看看它是否会改变,我看到的橙色视图很小。可能只有状态栏那么大。我们有我的UILabel
。我希望它能以我的UIView
为中心。当我展示它时,它甚至不在我的UIView
中。这是我的第一排UITableView
的顶部。当我使用CGRectMake()
初始化它时,它是将它设置在父视图的坐标中还是将它移开?我试图创建它,当我将它添加到我的headerView中时,我想定位它。
最后,如果我想添加一个简单的背景渐变到我的tableView,我只是设置UITableView.backgroundColor = [UIColor clearColor]
,并将backgroundView设置为渐变?因为这似乎不工作?我只看到分组tableView的默认颜色。谢谢。
答
如果您在tableview的指定方法tableView:heightForHeaderInSection:
中添加高度,则可以解决标题高度问题。
对于颜色问题,我认为你应该设置单元格的背景颜色为clearColor
,然后你应该能够得到想要的效果。
关于UILabel,使其居中的最佳方法是使其与标题视图具有相同的宽度和高度,并将它的textAlignment
属性设置为UITextAlignmentCenter
。
可能需要将其分解为单独的问题。首先,你是否实现了'tableView:heightForHeaderInSection:'? – jrturton 2012-01-30 22:04:35