【问题标题】:Setting contentOffset of UITableView in UIViewController viewDidLoad method doesn't take effect在 UIViewController viewDidLoad 方法中设置 UITableView 的 contentOffset 不生效
【发布时间】:2010-10-28 00:41:32
【问题描述】:

UIViewController viewDidLoad中UITableView设置contentOffset不生效...

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem;

    self.tableView.contentOffset = CGPointMake(0.0f, 200.0f);
}

...该值已设置,但是,在表视图的 contentOffset 上设置观察者后,我可以看到它在 viewDidLoad 运行后至少再次设置为零(这是在一个空的 iphone“表视图" 模板项目,以确保它不是我在其他地方做的事情)。

我会使用 viewWillAppear: 但如果用户从其他地方返回到控制器,这会导致用户滚动的位置丢失。

有什么想法吗?我相信这一定很简单:)

【问题讨论】:

    标签: iphone cocoa cocoa-touch uikit


    【解决方案1】:

    在 viewWillAppear 中,能否检查偏移量是否为 0,0,如果是,则将其设置为您想要的位置?

    这将在允许您覆盖的同时保留用户的位置。

    【讨论】:

    • 嘿迈克尔,是的,这是我正在使用的临时措施,但不知何故,它感觉不像它应该的那样优雅......我想知道这是否是 Apple 在邮件中采用的方法应用程序,例如隐藏搜索栏。
    • 好吧,您基本上是在使用信息来提取用户是否滚动。您还可以有一个布尔值,当用户第一次滚动视图时,您将其翻转为 YES。这可能是最佳选择,因为用户可能会滚动到 (0,0),而不是当他们返回视图时会返回到 (0,200)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多