0

XIBのビューにUIToolbarを追加して、(不透明ではなく)黒の半透明スタイルにすると、上部に2ピクセルの黒のストロークが表示されます。一方、黒の半透明スタイルの不透明でないUISearchBarには、上部に1ピクセルの黒のストロークがあります。これらは両方とも同じ場所に配置されています(ナビゲーションバーの真下、44px下)。

ツールバーと検索バー

ビューを検索バーと一致させ、ナビゲーションバーとより調和させるために、UIToolbarの1pxの黒いストロークトップの方がはるかに好きです。ツールバーをサブクラス化せずにこれを達成できますか?たとえば、検索バーを使用して入力フィールドを非表示にする方法はありますか?

4

1 に答える 1

4

なぜ違うのか

それらは異なる場所に配置されることを意図しているため、それらは異なります。ツールバーは、2pxの黒いストロークが見栄えのする画面の下部に配置することを目的としています。

たとえば、メールアプリ(iPhone)を見ると、(半透明ではありませんが)ツールバーのストロークが2ピクセルで、検索バーのストロークが1ピクセルしかないことがわかります。また、それらがどのように配置されるのかがわかります。

  • ナビゲーションバーの下の検索バー
  • 画面下部のツールバー。

それらを変更する方法

どちらもエレガントな解決策ではありません、ごめんなさい。

自分でツールバーを描く

Core GraphicsまたはCAGradientLayerを使用して、ビュー全体を自分で描画できます。面倒ですが、好きなように見せることができます。

ストロークの上部をクリップします

ツールバーを43pxのビューに配置し、に設定clipsToBoundsできYESます。ストロークの最初のポイント/ピクセルにツールバーを配置する(0, -1)と、クリップされて表示されなくなります。ツールバーは1ピクセル小さくなり(高さ= 43)、スーパービューの高さを44ピクセル、ツールバーの高さを45ピクセル((0、-1)のまま)にして、再び44ピクセルにする必要があります。これによりグラデーションがわずかに変化するため、最終結果には、ストロークの一番上のピクセルを削除するだけでなく、他の視覚効果があります。

于 2012-04-25T20:16:51.403 に答える