Interface Builder不断重新设置我的自定义UITableViewCell的宽度
我正在使用Interface Builder 为iPad应用程序设计自定义的UITableViewCell。
我有一个专用的XIB文件,它有一个UITableViewCell作为它的根视图。 我能够将UITableViewCell的宽度更改为1024(在XCode的右侧属性窗格中的“大小”检查器中),并且这样可以暂时调整画布上的单元格大小。
然而,如果事后我尝试移动/调整UITableViewCell中的特定项目或关闭并重新打开XIB,则XCode决定将UITableViewCell的宽度重置为320(iPhone特定宽度)。
画布上的单元格会遮蔽单元格内的项目,并使得设计单元格变得不可能,除非我再次调整单元格大小。 一旦你绕过这个循环几次,它会变得相当烦人。
任何人都知道我可以如何设置宽度,使其永久性或如何指定UITableViewCell是iPad特定的?
要重新创建...
设备系列== iPad
将新的UITableViewCell拖动到画布上(其宽度为320,尽管之前选择了iPad)
编辑:
我刚刚收到苹果公司对我之前创建的雷达票的以下回复...
你好,奥利弗,
这是关于Bug ID#13222753的后续行动。
工程部门要求提供以下信息以进一步调查此问题:
我们相信这个问题已经在最新的Xcode 5.1种子中得到解决。
这是针对Mac,iPhone和iPad的Xcode开发人员工具集的预发布版本。 它包括Xcode IDE,iOS Simulator以及用于构建OS X和iOS应用程序的所有必需工具和框架。 请使用此版本进行测试,并使用结果更新错误报告。
Xcode 5.1种子 - 构建5B71f发布日期:2013年12月13日
我也试图在Xcode 5.0.2中重新创建这个问题,并且它看起来像修复了这个版本。
我不知道你是否认为这是一个有效的答案,但是当我在IB中使用自动布局时,问题似乎只发生在我身上。 如果我把它关掉,调整UITableViewCell大小的Xcode的问题就会消失。
要关闭自动布局 ,只需选择的UITableViewCell,然后在“文件检查器”右边,有一个自动版式复选框,将其关闭。
解决方法是不要将表格视图单元格添加到您的笔尖。 相反,使用常规视图来包含您的子视图。
创建一个自定义UITableViewCell类,用于加载笔尖并将顶级笔尖视图设置为单元格内容视图的子视图:
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
UINib *nib = [UINib nibWithNibName:@"YourNibName" bundle:nil];
UIView* containerView = [[nib instantiateWithOwner:self options:nil] objectAtIndex:0];
containerView.translatesAutoresizingMaskIntoConstraints = NO
[self.contentView addSubview:containerView];
NSDictionary *views = NSDictionaryOfVariableBindings(containerView);
[self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[containerView]|" options:0 metrics:nil views:views]];
[self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[containerView]|" options:0 metrics:nil views:views]];
}
return self;
}
用表格视图注册您的课程:
[tableView registerClass:YourCellClass forCellReuseIdentifier:@"YourCellID"]`
我只是做了一个测试,并没有任何问题调整细胞。 它确实没有什么区别,如果Xib是用'for iPhone'或'for iPad'选项创建的。 所以,这按预期工作。
诀窍是,不要拖拽大小,而是使用Inspector来改变宽度 - 这会使单元格大小为1024。
链接地址: http://www.djcxy.com/p/24407.html上一篇: Interface Builder keeps resetting the width of my custom UITableViewCell