1

テーブルビューセルでタッチされたテキストボックスのインデックスを取得したい。IOS 7 の前にそれを行うことができたという事実。過去には、以下のテキスト ボックス インデックスを取得できました。この方法は IOS 7 でも失敗します。この方法の代わりにタグを使用する必要があります。しかし、異なるテキスト ボックスごとにタグも使用します。テキストボックスをクリックすると、ピッカーを開く、選択ビューを開くなど、さまざまなことを行っているためです。テキストボックスに触れたときに各テキストボックスの行番号を取得するにはどうすればよいですか。

テーブルフォーム

-(NSInteger)getTextFieldCellRow:(id)element{
    UITableViewCell *cell = (UITableViewCell *)[[(UITextField*)element superview] superview];
    UITableView *table = (UITableView *)[cell superview];
    NSIndexPath *textFieldIndexPath = [table indexPathForCell:cell];
    return textFieldIndexPath.row;

}
4

3 に答える 3

1

わかりました、解決しました

-(NSIndexPath *) getButtonCellRow:(UITextField *) b {
    UITableView *tv = nil;
    UIView *superViewTemp = [b superview];
    UITableViewCell *cell=nil;

    BOOL isFoundTable=FALSE;
    BOOL isFoundCell=FALSE;

    while(superViewTemp != nil && ![superViewTemp isKindOfClass:[UIWindow class]]){

        if ([superViewTemp isKindOfClass:[UITableViewCell class]]) {
            cell=(UITableViewCell*)superViewTemp;
            isFoundCell = TRUE;

        }else if ([superViewTemp isKindOfClass:[UITableView class]]){
            tv = (UITableView*)superViewTemp;
            isFoundTable = TRUE;
        }

        superViewTemp = [superViewTemp superview];

        if(isFoundCell && isFoundTable){
            break;
        }
    }

    if(tv != nil && cell != nil){

        return [tv indexPathForCell:(UITableViewCell*)cell];
    }
    return nil;
}
于 2013-09-25T11:55:17.173 に答える
0

これは非常に簡単な解決策になるはずです

UIView *view = textField;

while (![view isKindOfClass:[UITableViewCell クラス]])

{

view = [view superview];

}

CellClass *cell = (CellClass *)view;

于 2013-09-30T07:48:14.813 に答える
0

次のコードを試してください。

UIView *contentView = (UIVIew *)[textfield superview];
UITableViewCell *cell = (UITableViewCell *)[contentView superview];
NSIndexPath *indexPath = [self.tableview indexPathForCell:cell];
NSLog(@"%d", indexPath.row);

UITableViewCellしかし、iOS 7 では、次のコードで取得できます。

UITableViewCell *cell = (UITableViewCell *)[[contentView superview] superview];
于 2013-09-24T06:52:02.417 に答える