首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >分组样式设置不会从IB、UITableView生效

分组样式设置不会从IB、UITableView生效
EN

Stack Overflow用户
提问于 2009-11-21 21:45:15
回答 6查看 7.4K关注 0票数 17

我已经使用接口生成器(IB)在iPhone应用程序中创建了一个表视图。我的表格样式设置为Grouped,并在IB中以这种方式显示。但是,每当我构建并运行时,它在模拟器中显示为Plain样式。

我将另一个视图设置为Grouped,并且没有遇到这个问题。以前有没有人遇到过这个问题?

视图的其余部分不是以编程方式创建的,因此我希望在此视图中避免这样做。一定是我漏掉了什么。

我要做的唯一的tableView方法是单元格处理程序方法,其中我将一个文本框合并到选择字段中:

代码语言:javascript
复制
- (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;

}

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-11-22 21:54:48

仍然不确定为什么"grouped“样式设置不能从界面生成器生效。但是,您可以在此处创建视图之前手动设置它:

代码语言:javascript
复制
- (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;
}
票数 8
EN

Stack Overflow用户

发布于 2009-12-19 02:42:37

我们有了这个,它把我们难住了大约一个小时。最后,我们发现未能在导航控制器内(在我们的主XIB!中的选项卡栏控制器内)设置视图控制器的NIB Name属性。如果没有该设置,我们对表视图的XIB文件所做的所有更改都将被完全忽略。然而,代码在其他方面工作得很好,几乎没有什么可以指出我们的错误。

我打赌你的情况也是这样。确保实际正在使用您的XIB (设置表格样式的位置)。

票数 13
EN

Stack Overflow用户

发布于 2010-07-27 07:12:32

你的控制器的基类是什么?我也有同样的问题,直到我把我的控制器从子类化的UITableViewController切换到了标准的UIViewController。如果您使用的是UITableViewController,它似乎有自己的内置UITableView,并忽略您在IB中指定的and。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1775528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档