2016-02-08 54 views
0

當我嘗試使用下面的代碼更新我的表**UITableview**時,我的單元格變得更小。我想知道是否有人面臨同樣的問題,並會知道爲什麼會發生這種情況。更新單元格時不一致的UITableViewCell大小

NSMutableArray* indexPaths = [[NSMutableArray alloc] init]; 
for (int i = 20; i < 20 + 20; i++) { 
    [indexPaths addObject:[NSIndexPath indexPathForRow:i inSection:0]]; 
} 

[self.tableView beginUpdates]; 
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:(UITableViewRowAnimationBottom)]; 
[self.tableView endUpdates]; 

....

+0

它可能是自動佈局問題你檢查它嗎? –

+0

這是我懷疑的wha,但我不知道從哪裏開始。它恢復正常,但我向下滾動。值得注意的是,我正在使用自定義的「TableViewCell」類。在setFrame中,我設置了一些 ' - (void)setFrame:(CGRect)frame frame.origin.x + = 5; frame.origin.y + = 5; frame.size.width - = 2 * 5; frame.size.height - = 2 * 5; [super setFrame:frame]; } ' – CreativityKills

+0

我發佈了調整自動佈局的答案。這可能會解決你的問題。 –

回答

0

可能是你還沒有給出的UITableViewDelegate方法實現:

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 
{ 
    return 44.0;//your default row height 
} 
+0

高度正確。我正在使用自定義單元格。 – CreativityKills

3

@CreativityKills。

如果您的自動佈局已啓用,請嘗試添加行後添加以下方法。它可能會幫助你,如果它是自動佈局的問題。

NSMutableArray* indexPaths = [[NSMutableArray alloc] init]; 
for (int i = 20; i < 20 + 20; i++) { 
    [indexPaths addObject:[NSIndexPath indexPathForRow:i inSection:0]]; 
} 

[self.tableView beginUpdates]; 
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:(UITableViewRowAnimationBottom)]; 
[self.tableView endUpdates]; 
[self adjustHeightOfTableview]; 


- (void)adjustHeightOfTableview 
{ 
    CGFloat height = self.tableView.contentSize.height; 
    CGFloat maxHeight = self.tableView.superview.frame.size.height - self.tableView.frame.origin.y; 

    // if the height of the content is greater than the maxHeight of 
    // total space on the screen, limit the height to the size of the 
    // superview. 

    if (height > maxHeight) 
     height = maxHeight; 

    // now set the height constraint accordingly 

    [UIView animateWithDuration:0.25 animations:^{ 
     self.tableViewHeightConstraint.constant = height; 
     [self.view setNeedsUpdateConstraints]; 
    }]; 
} 

希望這可以幫助你。

+0

您好,非常感謝您的回覆,我認爲您在正確的軌道上,但高度已經很穩固,其寬度發生了變化。 – CreativityKills

+0

@CreativityKills可以將相同的功能更改爲寬度。 –

+0

我試過了,並沒有工作。我一起去除了插頁,並按預期工作。 – CreativityKills

相關問題