Iphone setContentOffset仅在动画设置为“是”时起作用

Iphone setContentOffset仅在动画设置为“是”时起作用,iphone,objective-c,cocoa-touch,uitableview,Iphone,Objective C,Cocoa Touch,Uitableview,我有一个UITableView,我想以100px的速度显示它。由于某些原因,仅当“动画”设置为“是”时,此选项才起作用。为什么会这样 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; /*[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0]

我有一个UITableView,我想以100px的速度显示它。由于某些原因,仅当“动画”设置为“是”时,此选项才起作用。为什么会这样

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    /*[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0] 
                          atScrollPosition:UITableViewScrollPositionNone 
                                  animated:NO];*/

    /*[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathWithIndex:1] 
                                        atScrollPosition:UITableViewScrollPositionNone 
                                        animated:NO];*/

    [self.tableView setContentOffset:CGPointMake(0,100) animated:YES];
}

使用XCode提供的基于基本导航的应用程序并为其提供一些表格单元格,它可以很好地使用您提供的内容。您是否尝试过在ViewDidDisplay而不是ViewWillDisplay中设置内容偏移量?

如果尝试使用setFrame而不是setContentOffset会怎么样

您应该在ViewDidDisplay方法中添加以下代码:


[self.tableView setFrame:CGRectMake(0, 100, 320, 380)];
根据视图中的其他元素(例如导航控制器、工具栏等),您必须将380调整为其他元素。

将“setContentOffset”移动到“viewDidLoad”并在之前添加“reloadData”:

迅速:

func viewDidLoad() {
    super.viewDidLoad()
    tableView.reloadData() // important for scrolling to be possible
    tableView.setContentOffset(newContentOffset), animated: false)
    }

这一观点是如何呈现的?此视图是否在加载时直接显示?它正在动画中吗?另外,这是另一个视图中的视图吗?等等,它正在动画中。这不是另一个视图中的视图。是否有方法使高度动态?