我正在尝试为分组UITableView
的标头创建自己的自定义UIView。这是我到目前为止所使用的代码:
- (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的默认颜色。感谢。
答案 0 :(得分:0)
如果在tableview的指定方法tableView:heightForHeaderInSection:
中添加高度,则可以解决标题高度的问题。
对于颜色问题,我认为您应该将单元格的背景颜色设置为clearColor
,然后您应该能够获得所需的效果。
关于UILabel,使其居中的最佳方法是使其与标题视图的宽度和高度相同,并将其textAlignment
属性设置为UITextAlignmentCenter
。