我已经使用接口生成器(IB)在iPhone应用程序中创建了一个表视图。我的表格样式设置为Grouped,并在IB中以这种方式显示。但是,每当我构建并运行时,它在模拟器中显示为Plain样式。
我将另一个视图设置为Grouped,并且没有遇到这个问题。以前有没有人遇到过这个问题?
视图的其余部分不是以编程方式创建的,因此我希望在此视图中避免这样做。一定是我漏掉了什么。
我要做的唯一的tableView方法是单元格处理程序方法,其中我将一个文本框合并到选择字段中:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease];
}
if (indexPath.section == 0) {
if (indexPath.row == 0) {
cell.textLabel.text = @"Title";
UITextField *listTitleTextField = [ [ UITextField alloc ] initWithFrame: CGRectMake(150, 10, 145, 38) ];
listTitleTextField.adjustsFontSizeToFitWidth = YES;
listTitleTextField.textColor = [UIColor blackColor];
listTitleTextField.font = [UIFont systemFontOfSize:17.0];
listTitleTextField.placeholder = @"Your Title";
listTitleTextField.backgroundColor = [UIColor whiteColor];
listTitleTextField.autocorrectionType = UITextAutocorrectionTypeNo; // no auto correction support
listTitleTextField.autocapitalizationType = UITextAutocapitalizationTypeNone; // no auto capitalization support
listTitleTextField.textAlignment = UITextAlignmentRight;
listTitleTextField.keyboardType = UIKeyboardTypeDefault; // use the default type input method (entire keyboard)
listTitleTextField.returnKeyType = UIReturnKeyDone;
listTitleTextField.tag = 0;
listTitleTextField.delegate = self;
listTitleTextField.clearButtonMode = UITextFieldViewModeUnlessEditing; // no clear 'x' button to the right
if (self.wishList.listTitle == nil || [self.wishList.listTitle length] == 0) {
listTitleTextField.text = @"";
}
else {
listTitleTextField.text = self.wishList.listTitle;
}
[listTitleTextField setEnabled: YES ];
[cell addSubview: listTitleTextField ];
[listTitleTextField release];
}
else if (indexPath.row == 1) {
cell.detailTextLabel.text = @"Pick an Icon";
cell.textLabel.text = @"List Icon";
}
}
else {
cell.textLabel.text = @"Add Wish";
}
return cell;
}
发布于 2009-11-22 21:54:48
仍然不确定为什么"grouped“样式设置不能从界面生成器生效。但是,您可以在此处创建视图之前手动设置它:
- (id)initWithStyle:(UITableViewStyle)style {
// Override initWithStyle: if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
style = UITableViewStyleGrouped;
if (self = [super initWithStyle:style]) {
}
return self;
}
发布于 2009-12-19 02:42:37
我们有了这个,它把我们难住了大约一个小时。最后,我们发现未能在导航控制器内(在我们的主XIB!中的选项卡栏控制器内)设置视图控制器的NIB Name属性。如果没有该设置,我们对表视图的XIB文件所做的所有更改都将被完全忽略。然而,代码在其他方面工作得很好,几乎没有什么可以指出我们的错误。
我打赌你的情况也是这样。确保实际正在使用您的XIB (设置表格样式的位置)。
发布于 2010-07-27 07:12:32
你的控制器的基类是什么?我也有同样的问题,直到我把我的控制器从子类化的UITableViewController
切换到了标准的UIViewController
。如果您使用的是UITableViewController
,它似乎有自己的内置UITableView
,并忽略您在IB中指定的and。
https://stackoverflow.com/questions/1775528
复制相似问题