添加到UITableView时在故事板中使用UITableViewCells的正确方法是什么

时间:2018-06-12 10:57:48

标签: ios objective-c

希望有人可以提供帮助,因为我遇到了一些障碍。我开始使用UIScrollview,其中包含动态高度开关的内容。在使用AutoLayout的一些问题后,我改用了UITableView。

此时我在主UIView中有一个UITableView,然后在故事板中分离UITableViewCells。每个UITableViewCell都通过IBOutlet连接。

现在切换内容我在reloadData上使用以下内容

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    if(contentToShow == 1){

        UITableViewCell *cell = self.cellHome;

        self.viewIcon1.layer.cornerRadius = 40;
        self.viewIcon1.layer.masksToBounds = true;
        self.viewIcon2.layer.cornerRadius = 40;
        self.viewIcon2.layer.masksToBounds = true;
        self.viewIcon3.layer.cornerRadius = 40;
        self.viewIcon3.layer.masksToBounds = true;
        self.viewIcon4.layer.cornerRadius = 40;
        self.viewIcon4.layer.masksToBounds = true;


        [self addUnderline:self.imageViewTitle];
        [self addUnderline:self.imageViewTitle2];
        [self addUnderline:self.imageViewTitle3];

        return cell;

    }else {

        UITableViewCell *cell = self.cellCustInfo;

        [self addUnderline:self.imageViewTitle4];

        return cell;

    }

}

现在这似乎改变了UITableView的内容,但是我在更改后立即对滚动的位置有了奇怪的问题。我正在使用以下内容尝试回到UITableView的顶部。

- (IBAction)showFAQScreen {

    contentToShow = 2;


    [UIView animateWithDuration:0.4 animations:^{
        self.tableViewContent.contentOffset = CGPointZero;}];

    [self.tableViewContent reloadData];

    [self showMenu:nil];

}

如果滚动未移动,则内容显示正确,如果稍微移动,则内容按预期滚动。但是,如果滚动显着向下移动,滚动跳转到底部,直到我触摸滚动它才会自动纠正。有什么想法和另一种方法的建议吗?

由于

1 个答案:

答案 0 :(得分:1)

你能试试吗

UIView animateWithDuration:duration  animations:^{
  self.tableViewContent.contentOffset = CGPointZero;
} completion:^(BOOL finished) {
     [self.tableViewContent reloadData]; 
     [self showMenu:nil];
}];