UIScrollView中的UITableVIew不会重新加载

时间:2014-07-28 09:03:10

标签: ios objective-c iphone uitableview uiscrollview

我的UIScrollView底部有UITableVIew。这个UITableView动态增长和减少,所以在我按“update button”之前我不知道大小。

当我按下“更新按钮”时,我会更新UITableView frameUIScrollView height。 奇怪的是,在按下2次更新按钮...

之前,UITableView不可见

有人看到错误吗?我尝试了所有内容,例如setNeedsDisplay或致电[self viewDidLoad],但它无效。

这是我的代码:

    -(IBAction)update:(id)sender {
[[ApiHandler instance] update:self.item.hash complete:^(NSInteger responseCode,  NSInteger status, NSArray *comments, NSDictionary *reason) {
    if(responseCode == 200) {
        [self.item setStatus:status];
        [self.item setComments:comments];

        [self initViews];  
    } 
}];

}

- (void)initViews {

if(self.item.comments.count > 0) {
    [self.commentsTableView setHidden:NO];
}else {
    [self.commentsTableView setHidden:YES];
}

NSInteger numOfRows = self.item.comments.count;
long tableHeight = numOfRows * 110;

int height = (650 + tableHeight);
[self.constraint setConstant:height];  //Height constraint for the UIView inside the UIScrollView.

CGRect tableFrame = [self.commentsTableView frame];
tableFrame.size.height = tableHeight;
[self.commentsTableView setFrame:tableFrame];
[self.commentsTableView reloadData];

}

1 个答案:

答案 0 :(得分:0)

我解决了。我刚刚在UITableView高度添加了一个Constraint:

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *commentsTableHeightConstraint;

然后我更新约束:

- (void)initViews {

if(self.item.comments.count > 0) {
    [self.commentsTableView setHidden:NO];
}else {
    [self.commentsTableView setHidden:YES];
}

NSInteger numOfRows = self.item.comments.count;
long tableHeight = numOfRows * 110;

int height = (650 + tableHeight);
[self.constraint setConstant:height];

[UIView animateWithDuration:0.25 animations:^{
    self.commentsTableHeightConstraint.constant = tableHeight;
    [self.commentsTableView reloadData];
    [self.view needsUpdateConstraints];
}];

}