0

UITextFieldのレイヤーを、実際にはUIImageViewである既存のレイヤーにサブレイヤーとして追加しています。画像ビューに遠近法の回転を適用すると、正常に機能します。ただし、UITextFieldはアクティブになりません。それに対するbeginFirstResponderメッセージは、キーボードを示していません。それをタップしても機能せず、ユーザーの操作から非アクティブのままになります。また、テキストフィールドのレイヤーのzPositionを、imageviewレイヤーの上にありzPositionになるように設定してみました。

    rightband = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"right-band.png"]];
    rightband.layer.frame = CGRectMake(623.5, 310.5, 624, 210);
    rightband.layer.zPosition = 40.0f;


    usernameField = [[UITextField alloc] initWithFrame:CGRectMake(10, 10, 260, 26)];
    usernameField.clearButtonMode = UITextFieldViewModeWhileEditing;
    usernameField.keyboardType = UIKeyboardTypeDefault;
    usernameField.autocapitalizationType = UITextAutocapitalizationTypeNone;
    usernameField.borderStyle = UITextBorderStyleNone;
    usernameField.backgroundColor = [UIColor clearColor];
    usernameField.font = [UIFont fontWithName:@"HelveticaNeue" size:17];
    usernameField.textColor = UIColorFromRGB(0x303030);
    usernameField.textAlignment = UITextAlignmentLeft;
    usernameField.placeholder = @"Username";
    usernameField.autocorrectionType = UITextAutocorrectionTypeNo;
    usernameField.returnKeyType = UIReturnKeyNext;
    usernameField.delegate = self;
    usernameField.layer.anchorPoint = CGPointMake(1.0f, 0.5f);
    usernameField.layer.zPosition = 100.0f;
    usernameField.layer.frame = CGRectMake(10, 10, 260, 26); 
    [rightband.layer addSublayer:usernameField.layer];
4

2 に答える 2

0

ビュー階層を次のように変更してみてください

UIView->UIImageViewとUITextFieldUITextFieldを子としてUIImageViewに追加しないUITextFieldとUIImageViewは両方ともUIViewの子になります

于 2012-05-31T10:17:02.383 に答える
0

タッチに応答するには、テキストフィールドビューを追加する必要があります。そうしてください:

[rightband addSubview:usernameField];
于 2012-05-31T10:33:09.340 に答える