2012-06-09 1 views
1

Я пытаюсь добавить UITextField в UIScrollView. Я не могу получить UITextField в UIScrollView, но нажатие на TextField ничего не делает. Я пробовал много вещей. Последнее, что я пробовал, это создать собственный ScrollView и проверить hitTest. Я установил его, чтобы сказать «НЕТ» на задержкахContentTouches независимо, и он все еще ничего не делает. Я устанавливаю userInteractionEnabled на TextField и все равно ничего. Я просмотрел все другие подобные вопросы, и ни у кого из них нет ответов.Не удается получить доступ к UITextField в UIScrollView

Код, показанный ниже, показывает мою попытку добавить ярлык и TextField в UIView, а затем добавить этот UIView в ScrollView. Все это работает визуально, но TextField ничего не делает.

UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 100, 30)]; 
lbl.text = @"Sample"; 
[lbl setBackgroundColor:[UIColor clearColor]]; 
[lbl setTextColor:[UIColor blackColor]]; 

UITextField *txt = [[UITextField alloc] initWithFrame:CGRectMake(115, 0, 195, 30)]; 
txt.borderStyle = UITextBorderStyleRoundedRect; 
txt.font = [UIFont systemFontOfSize:15]; 
//txt.placeholder = @"enter username"; 
txt.autocorrectionType = UITextAutocorrectionTypeNo; 
txt.keyboardType = UIKeyboardTypeDefault; 
txt.returnKeyType = UIReturnKeyNext; 
txt.clearButtonMode = UITextFieldViewModeWhileEditing; 
[txt canBecomeFirstResponder]; 
txt.delegate=self; 
txt.userInteractionEnabled=TRUE; 
[txt addTarget:self action:@selector(tfTouch:) forControlEvents:UIControlEventTouchUpInside]; 
txt.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; 

UIView *theView = [[UIView alloc] init]; 
theView.userInteractionEnabled=TRUE; 
[theView addSubview:lbl]; 
[theView addSubview:txt]; 
[scrollView addSubview:theView]; 
+0

Что вы хотите ???? вы хотите добавить текстовое поле только в scrollview? – TheTiger

ответ

3

Почему у вас другое мнение, вы можете добавить ярлык TextField & непосредственно на Scrollview. Возможно, вам просто нужно установить рамку для вашего вида. Это должно сделать это:

[theView sizeToFit]; 

Также правильно настройте свой контент. scrollView.contentSize = theView.bounds;

+0

Моя конечная цель - иметь UIView с ярлыком и TextField, динамически повторяющимся столько раз, сколько необходимо. Я решил, что лучший способ сделать это, и держать их в очереди, чтобы положить их в UIView, а затем последовательно организовать UIViews по вертикали. –

+0

Вы говорите, что, поскольку UIView - это правильный размер, я не могу коснуться TextField, хотя я его вижу? (Я не спрашиваю тебя, просто убедившись, что я понимаю). –

+0

Да. Взгляд только затрагивает его границы. Если вы включите 'theView.clipsToBounds', вы также больше не увидите своих других просмотров. ;) – calimarkus

Смежные вопросы