1

UIView をアクセサリビューとして UITextField に追加しようとしていますが、アルファ プロパティが尊重されていないようです。

これが私の現在のコードです。

self.keyboardAccView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 480.0)];
[self.keyboardAccView setBackgroundColor:[UIColor lightGrayColor]];
[self.keyboardAccView setOpaque:NO];
[self.keyboardAccView setAlpha:0.0];

UITapGestureRecognizer *hideKeyboardTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard:)];
[self.keyboardAccView addGestureRecognizer:hideKeyboardTap];
[hideKeyboardTap release], hideKeyboardTap=nil;

アルファ値は問題ではないようです。何を設定しても、accessoryView は常に透明度なしに設定されます。

私が達成しようとしているのは、ユーザーがキーボードから離れたときにキーボードを閉じる透明なビューをキーボードの上に表示することです。私が完全に見逃しているこれを行うためのより良い/適切な方法がある場合、私もすべて耳です。

  • 編集 *

backgroundColor として使用できることはわかって[UIColor clearColor]いますが、本当に半透明のaccessoryViewが必要な場合に備えて、アルファ設定が受け入れられない理由を知りたいです

4

1 に答える 1

0

はい - もっと良い方法があります! :)
私は個人的にこのようにしています - ViewController.xib クラス (UIView から UIControl) を変更してから、UIControl がタップされるたびに最初の応答者を辞任する単純な IBAction を作成します。

メソッドは次のようになります。

- (IBAction)hideKeyboard {
[textField resignFirstResponder];
}

それでおしまい :)

于 2011-12-09T20:03:39.287 に答える