我有一个UITableView,我希望显示100px。出于某种原因,这仅在动画设置为YES时有效。这是为什么?
- (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];
}
答案 0 :(得分:0)
使用XCode提供的基于导航的基本应用程序并为其提供一些表格单元格,它可以与您提供的内容一起使用。您是否尝试在viewDidAppear中设置内容偏移量而不是viewWillAppear?
答案 1 :(得分:0)
如果您尝试使用setFrame而不是setContentOffset怎么办?
您应该在viewDidAppear方法中添加此代码:
[self.tableView setFrame:CGRectMake(0, 100, 320, 380)];
根据视图中的其他元素(例如导航控制器,工具栏等),您必须将380调整为其他内容。
答案 2 :(得分:0)
看到你提出了类似的问题,但史前有点不同, here.
我在那里回答。可能对某人有用。答案 3 :(得分:-1)
移动" setContentOffset" to" viewDidLoad"并添加" reloadData"在那之前:
在斯威夫特:
func viewDidLoad() {
super.viewDidLoad()
tableView.reloadData() // important for scrolling to be possible
tableView.setContentOffset(newContentOffset), animated: false)
}