【发布时间】:2015-09-29 16:45:53
【问题描述】:
我是 Objective C 的新手,在第一次旋转到横向后旋转回纵向时,我似乎无法在 tableViewCell 中设置正确的 UIView。
我查看了几篇相关的帖子,但似乎没有任何问题可以解决我的问题。当我打印宽度时,虽然输出不正确,但我得到了预期的结果。
我创建了一个 UIView“lineView”来在我的 tableView 中的单元格之间添加自定义线条(由于不同部分中的一些分隔符问题,这是必要的)。
以下是部分代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"anIdentifier" forIndexPath:indexPath];
... Content of the cell
UIView *lineView = [[UIView alloc] initWithFrame:CGRectMake(10, 42,tableView.bounds.size.width-20, 0.7);
lineView.backgroundColor = [UIColor blackColor];
[cell.contentView addSubview:lineView];
return cell;
}
当我运行整个程序时,我得到以下输出(从左到右:不旋转,旋转到横向,旋转回纵向):
图 1 和图 2 中的分隔线是正确的,但是当我旋转回横向时,右侧的插图消失了。可能有一个微不足道的解决方案,但我的原始技能让我失望。
我错过了什么?
【问题讨论】:
-
是否可以将约束应用于该分隔符 UIView?我的意思是例如: [lineView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[lineView(==0.7]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(myView)]]; 宽度也类似。跨度>
-
谢谢!这绝对是一个选择。我尝试了 contraintWithVisualFormat 以及 constraintsWithItem。在对代码进行一些修改后,这两种方式都可以工作。我将在答案中添加代码。
标签: ios objective-c iphone uiview rotation