ios - UITableView 滚动到不同设备上的行

标签 ios iphone objective-c uitableview viewdidload

我遇到了某种错误(我猜)...在我的 viewDidLoad: 中,在获取并执行其他操作后,我将 UITableView 滚动到最近的日期在未来。为此,我使用了我的方法,但基本上它变成了调用 scrollToRowAtIndexPath:atScrollPosition:animated:。当我从按钮操作或 UITableView 重新加载后调用此方法时,一切正常,但是...

当我在 iPhone 4S(真实设备)上运行这个应用程序时,它不会将我滚动到 viewDidLoad 中的这一行,但会告诉我这个方法已正确执行!更重要的是,当我在模拟器(5 或 5S)中运行它时,一切都像魅力一样!当我在 iPhone 4 模拟器中运行此代码时,此代码甚至无法运行...为什么?是否有某种变化需要确定我使用的是哪种设备?

最佳答案

我建议看一下两个选项:

1) 而不是 viewDidLoad 你应该将你的滚动逻辑移动到 viewDidAppearafter some delay

2) 处理这个委托(delegate),一旦加载了所需的单元格,就滚动到它的位置:

- (void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath*)indexPath NS_AVAILABLE_IOS(6_0)
{
    if(indexPath.row == someFutureDateRowNumber)
    {
          // TODO : do scrolling here.
    }   
}

关于ios - UITableView 滚动到不同设备上的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22962137/

相关文章:

ios - 如何防止多个用户在应用内购买时使用相同的 Apple ID

ios - 当应用程序在后台时更新 MKMapView

ios - 将字节数据从 XML 解析转换为图像

ios - 使用 UIPickerView 更改 UITextField,而不是调用 EditingDidChange 操作

objective-c - 如何检查 NSMutableArray 中是否存在对象

iphone - 如何让我的 iPhone 应用程序显示顶部横幅提醒,例如 Mail 应用程序?

ios - iOS 需要什么类型的证书?

iPhone - 动画 View Controller 演示

iphone - 无法在 UITableViewCell 中设置自定义背景颜色

iphone - Xcode4 损坏 nib 文件