ありがとう、私は私が作成したカスタムビューをスーパービュー(ビューコントローラ)で実装しようとしています。スーパービュー - ビュー - サブビュー。 textFieldをマスクして対話できない実装。 iOS。助けてください
fromAge = [[simpleFormCell alloc]initWithFrame:CGRectMake(0, spaceFromTopLabel + 190, 200, 30)];
fromAge.title = @"Age";
fromAge.placeholder = @"";
fromAge.widthOfTextField = 60;
[fromAge populateView];
fromAge.textField.delegate = self;
fromAge.textField.tag = fromAgeTextFieldTag;
[fromAge.textField setInputView:multipurposePicker];
[scrollViewBackground addSubview:fromAge];
toAge = [[simpleFormCell alloc]initWithFrame:CGRectMake(0, spaceFromTopLabel + 190, 200, 30)];
toAge.title = @"to";
toAge.placeholder = @"";
toAge.widthOfTextField = 60;
toAge.leftPaddingForLabel = 210;
toAge.leftPaddingForTextField = 240;
[toAge populateView];
toAge.textField.delegate = self;
toAge.textField.tag = toAgeTextFieldTag;
[toAge.textField setInputView:multipurposePicker];
[scrollViewBackground addSubview:toAge];
simpleFormCellは、次の実装とカスタムビューである:私はINITで[自己populateView]を呼ばれる同様の方法を持っている
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
title = @"test";
placeholder = @"test2";
numberofLine = 1;
leftPaddingForLabel = 20;
leftPaddingForTextField = 140;
widthOfLabel = 90;
widthOfTextField = 160;
height = 30;
//[self populateView];
}
return self;
}
- (void)populateView{
label = [[UILabel alloc]initWithFrame:CGRectMake(leftPaddingForLabel, 0, widthOfLabel, (height * numberofLine))];
label.text = title;
label.textAlignment = UITextAlignmentLeft;
label.backgroundColor = [UIColor clearColor];
[self addSubview:label];
textField = [[UITextField alloc]initWithFrame:CGRectMake(leftPaddingForTextField, 0, widthOfTextField, (height * numberofLine))];
textField.borderStyle = UITextBorderStyleRoundedRect;
textField.placeholder = placeholder;
textField.textAlignment = UITextAlignmentCenter;
textField.tag = tag;
[textField setReturnKeyType:UIReturnKeyNext];
[self addSubview:textField];
}
。それはうまくいくようです。 multipurposePickerが正しく動作していると仮定してください。これはコードですが、この2つのインスタンスには適用されません。
- (id)initWithPreset1:(CGRect)frame title:(NSString *)titleValue numberOfLine:(int)numberOfLineValue delegate:(id) delegateValue tag:(int)tagValue{
self = [super initWithFrame:frame];
if (self) {
title = titleValue;
placeholder = @"";
numberofLine = numberOfLineValue;
leftPaddingForLabel = 20;
leftPaddingForTextField = 140;
widthOfLabel = 110;
widthOfTextField = 160;
height = 30;
tag = tagValue;
[self populateView];
textField.delegate = delegateValue;
}
return self;
}
これらの白いボックスは、私の感触に反応しません。 (textFieldDidBeginEditingは呼び出されません)。
[フロマージュbecomeFirstResponder]動作します。それはただ私の感触に反応しません。私はそれの上に何もないことを確認した。助けてください。ありがとうございました!
toAgeのUITextFieldはフレーム外です(leftPaddingForTextFieldは240ですが、toAge幅は200です)。これは1つの問題です。 fromAgeも接触に反応しないのですか? scrollViewBackgroundはUIScrollViewですか、それともUIViewですか?フレームがすべてのサブビューに十分な幅であることを確認します。 – Anna