首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >调整UITableView大小以适应内容

调整UITableView大小以适应内容
EN

Stack Overflow用户
提问于 2010-04-08 03:00:06
回答 12查看 147.6K关注 0票数 195

我正在创建一个应用程序,它将有一个问题在UILabel和多项选择答案显示在UITableView中,每行显示多项选择。问题和答案将有所不同,所以我需要这个UITableView是动态的高度。

我想找一个适合这张桌子的sizeToFit。其中表格的框架被设置为其所有内容的高度。

有人能建议我如何实现这一点吗?

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2010-04-08 03:29:25

实际上我自己找到了答案。

我刚刚使用table.contentSize.heightheighttableView.frame创建了一个新的CGRect

它将UITableView的高度设置为其内容的height。因为代码修改了UI,所以不要忘记在主线程中运行它:

代码语言:javascript
复制
dispatch_async(dispatch_get_main_queue(), ^{
        //This code will run in the main thread:
        CGRect frame = self.tableView.frame;
        frame.size.height = self.tableView.contentSize.height;
        self.tableView.frame = frame;
    });
票数 164
EN

Stack Overflow用户

发布于 2013-10-24 23:21:06

我已经在iOS 7中尝试过了,它对我很有效

代码语言:javascript
复制
- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.tableView sizeToFit];
}
票数 21
EN

Stack Overflow用户

发布于 2014-08-21 13:15:03

为表视图上的contentSize属性添加一个观察者,并相应地调整框架大小

代码语言:javascript
复制
[your_tableview addObserver:self forKeyPath:@"contentSize" options:0 context:NULL];

然后在回调中:

代码语言:javascript
复制
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
    {
         CGRect frame = your_tableview.frame;
         frame.size = your_tableview.contentSize;
         your_tableview.frame = frame;
    }

希望这能对你有所帮助。

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

https://stackoverflow.com/questions/2595118

复制
相关文章

相似问题

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