UITableViewController静态和分组scrollToRowAtIndexPath不滚动到正确的单元格

时间:2015-05-28 23:20:33

标签: ios objective-c uitableview

我有一个bustedmaster,其中我使用的是静态单元格。每个单元格都有一个UITableViewController供用户输入信息,底部是一个提交按钮。点击按钮后,我确认他们已经输入了每个字段的信息,如果没有,我会向上滚动到该单元格/字段,以便他们可以完成它。

但是,由于某种原因,在使用UITextField

时,它无法滚动到正确的单元格
scrollToRowAtIndexPath

这种精确的实现在使用原型单元时非常有用,但不是静态的。

但是,如果我使用以下内容,它会滚动到正确的单元格:

#pragma mark - Save

- (IBAction)didTapSaveGuestDetails:(ZSSBottomOverlayButton *)sender {

    [self checkForFormSubmissionErrors];

}

- (void)checkForFormSubmissionErrors {

    // First Name
    if (self.nameFirst.text.length == 0) {
        [self showAlertWithMessage:NSLocalizedString(@"* Please enter first name", nil) fieldToHighlight:self.nameFirst];
        return;
    }

    [self.view endEditing:YES];
    [self submitUpdatedGuestInfo];

}

- (void)submitUpdatedGuestInfo {



}


#pragma mark - Alert

- (void)showAlertWithMessage:(NSString *)message fieldToHighlight:(UIView *)field {

    UIColor *redColor = [OTAColors colorWithRed:234 green:85 blue:58];
    [RKDropdownAlert title:message backgroundColor:redColor textColor:[UIColor whiteColor] time:2.0];

    if (field) {

        [self highlightField:field];

    }

}

- (void)highlightField:(UIView *)field {

    [self.tableView endEditing:YES];

    // Color field
    if ([field isKindOfClass:[ZSSLargeTextField class]]) {
        ZSSLargeTextField *textField = (ZSSLargeTextField *)field;
        [textField showWarning];
    }

    CGPoint pointInTable = [field convertPoint:field.bounds.origin toView:self.tableView];
    NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:pointInTable];
    [self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES];

}

所以,似乎问题可能出在我的[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0] atScrollPosition:UITableViewScrollPositionMiddle animated:YES]; 方法中?

知道什么可能阻止它滚动到正确的单元格?

0 个答案:

没有答案