7

の代わりにUIViewandを使用して、カスタマイズされたナビゲーション バーを作成しています。UIButtonsUINavigationBar

しかし、私UIButtonsのナビゲーションバーは敏感に反応しません。

タップするには、ほぼ中央をタップする必要がありUIButtonます。
の端をタップしても反応しませんUIButton

ただし、通常UINavigationBarのボタンは、ボタンの端をタップすることでタップできます。
ボタンの外側をタップしてもタップ可能です。

カメラアプリのシャッターボタンやオプションボタンも、ボタンの端や外側をタップすることでタップできます。

簡単にタップできるボタンをアプリに実装するにはどうすればよいですか?

4

3 に答える 3

11

画像を使用してカスタム ボタンを作成します。画像がボタンのビューのサイズに拡大縮小されず、代わりに中央に配置されるようにボタンを設定します。両側の画像よりも大きくなるように、ボタンのサイズを拡大します。Apple は、タブ ボタンのようなものでもこれを行います。

于 2012-06-26T18:31:12.193 に答える
10

UIButtonは、この目的のために特別なimageEdgeInsetsプロパティを持っています。タッチ可能な領域に必要な大きさの UIButton フレームを作成し、imageEdgeInsets.

于 2012-11-08T14:03:28.110 に答える
4

免責事項: このコードはテストされていませんが、どのように実行できるかについてのアイデアを提供します。

ボタン (この場合は 40px x 40px) を作成し、それに小さい背景画像を追加すると、画像が非常に「クリック可能」であるという印象を与えます。

// This image is 20px x 20px (Just an example)
UIImage* backgroundImage = UIImage imageNamed:@"backgroundImage.png"]

// Custom button, remember to add a target method
UIButton* customButton = [UIButton buttonWithType:UIButtonTypeCustom];
customButton.frame = CGRectMake(0.0, 0.0, 40.0, 40.0);
customButton.contentMode = UIViewContentModeCenter;
[customButton setImage:backgroundImage forState:UIControlStateNormal];

UIBarButtonItem* customBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:customButton];
self.navigationItem.rightBarButtonItem = customBarButtonItem;
[customBarButtonItem release];
于 2012-06-26T19:42:35.367 に答える