首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UITableView帧大小奇异行为

UITableView帧大小奇异行为
EN

Stack Overflow用户
提问于 2015-07-31 16:27:50
回答 2查看 197关注 0票数 0

在viewDidLoad之后,我尝试以编程方式将框架大小设置为表视图:

代码语言:javascript
复制
[_tableView setFrame:CGRectMake(0, topHeight, 
     [[UIScreen mainScreen] bounds].size.width,
     [[UIScreen mainScreen] bounds].size.height - topHeight)];

默认大小为200x200,原点为Y 100:

场景层次:

UITableView的实现显示了调用setFrame时的情况:

代码语言:javascript
复制
@implementation MainTableView

- (void)setFrame:(CGRect)frame {
    NSLog(@"setFrame: %f %f", frame.size.width, frame.size.height);
    [super setFrame:frame];
}

@end

一切都很好,但是当我按下任何单元格而不打印来自setFrame的日志消息时,表的帧会调整为默认的。小解说视频:rHvCS2I

我不明白为什么在单元格单击后,我的表大小变成默认(200x200)。即使我试图在viewWillAppear中设置大小(从单元格详细信息视图返回后),它也不起作用。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-31 17:31:01

我不知道为什么您的tableView没有正确地调整大小,因为您没有提供太多的代码来查看。虽然我建议为tableView设置一些约束或调整大小的规则,但可能如下所示:

http://i.imgur.com/N9fvvIB.png (如果不使用自动布局)

http://i.imgur.com/3Uz8e5e.png (如果使用自动布局)

现在,如果您真的需要使这个工作只通过代码,我建议抛出一些NSLog,其中包含表视图的帧宽度和高度,在设置之前和之后。

票数 1
EN

Stack Overflow用户

发布于 2015-07-31 22:15:13

试试_tableView.translatesAutoresizingMaskIntoConstraints = NO。

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

https://stackoverflow.com/questions/31750908

复制
相关文章

相似问题

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