2012-03-14 27 views
0

HIGに基づいて、タップ可能なボタンのサイズは44x44でなければなりません。今私は次を持っています:UIBarButtonItemのタップ可能領域を44x44にする方法はありますか?

UIButton * stop = [UIButton buttonWithType:UIButtonTypeCustom]; 

     [stop setSize:CGSizeMake(15, 18)]; 


    [stop setBackgroundImage:[UIImage imageNamed:@"stop-gray.png"] forState:UIControlStateNormal]; 
    [stop addTarget:self action:@selector(stopPage:) forControlEvents:UIControlEventTouchUpInside]; 
    stopButton_ = [[UIBarButtonItem alloc] initWithCustomView:stop]; 

UIBarButtonItemは、iphone用のUIToolbarの中に入れられます。イメージのサイズに気付くと、15,18より小さい。UIBarButtonItemのタップ可能な領域を44x44にする方法はありますか?または、サイズが44x44になるように空のスペースを持つ新しいアイコンを作成する必要がありますか?iOSの世界でこれは何がベストプラクティスですか?

答えて

1

なぜカスタム表示を使用していますか?ボタン上にカスタム画像が必要な場合は、-[UIBarButtonItem initWithImage:style:target:action:]を使用すると、タップ可能な領域と標準的なシステム動作が得られます。

カスタムビューを実際に必要とするものがある場合は、空きスペースを残すように画像を変更する必要はありません。contentHorizontalAlignmentcontentVerticalAlignmentを設定して、ビューを塗りつぶすのではなく、あなたが望むようにあなたのビューのサイズを設定します。

+0

問題は私のイメージの色が灰色で、私がそうすると白い部分が白であることです – xonegirlz

+0

あなたの質問はHIGの勧告から始まりました... HIG [また、](https://developer.apple.com/ライブラリ/ ios/documentation/UserExperience/Conceptual/MobileHIG/IconsImages/IconsImages.html#// apple_ref/doc/uid/TP40006556-CH14-SW8)ツールバーのアイコンは白いはずです。現在使用できないことを示すためにアイコンをグレーアウトしている場合は、UIBarButtonItemで 'enabled'プロパティを使用してみませんか? – rickster

+0

それは私がそれを持っているカスタムグレーです – xonegirlz

0

透明バックグラウンドを使用した画像44x44と、画像内の小さな画像が最も簡単な方法だと思います。

+0

@rickster:なぜあなたは整列が良いと思いますか? – mica

+0

それは必ずしも良いとは言えません - 主に私はそれを指摘しました。なぜならOPはあなたに*空きスペースのある大きな画像を作成しなければならないか、別の方法があるかどうか尋ねました。ただし、アライメントを使用することには、少なくとも1つの議論があります。透過画像で満たされた大きな画像は、(おそらく単純に)大きなファイルです。 – rickster

関連する問題