Ton*_*nzi 17 iphone objective-c uitableview iphone-sdk-3.0
我使用Interface Builder(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;
Run Code Online (Sandbox Code Playgroud)
}
Joe*_*out 13
我们有这个,它让我们困扰了大约一个小时.最后我们发现我们未能在导航控制器内设置视图控制器的NIB Name属性(在标签栏控制器内,在我们的主XIB中!).如果没有该设置,我们对表视图的XIB文件所做的所有更改都将被完全忽略.然而,代码工作正常,而且我们的错误很少指向我们.
我打赌你的情况会发生类似情况.确保实际使用了您的XIB(您设置表格样式的位置).
小智 9
你的控制器的基类是什么?我遇到了同样的问题,直到我将控制器从子类化转换UITableViewController为标准UIViewController.看起来如果您使用的是UITableViewController它,它有自己的内置UITableView并忽略您在IB中指定的那个.
仍然不确定为什么"分组"样式设置不会从Interface Builder生效.但是,您可以在此处创建视图之前手动设置它:
- (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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7315 次 |
| 最近记录: |