2013-09-24 7 views
5

私はUIViewの周りに半透明の境界線を作ろうとしています。アイデアは、写真を表示することですが、ボーダーが写真の端を覆っているにも関わらず、ボーダーの背後にあるものを見ることができます。私は国境が異なる側のために異なった境界幅を持つことを望む。最上部には80ポンドの国境を、下には60ポットの国境が、両側には10ポットの国境が必要です。私は、コードを使用していることを知っている:UIViewの周りにカスタムボーダーを作成するにはどうすればよいですか?

UIView.layer.borderColor = [UIColor blueColor].CGcolor; 
UIView.layer.borderWidth = 10; 

は、すべてのUIViewの内側の周りにあなたに幅10の均一な境界線を与えるだろうが、どのように私はUIViewのの異なる側に異なる境界線の幅を設定するのですか?

+1

QuartzCoreプログラミングを調べて、ビューの端を囲むようにパスを描画し、パスの各行の色を変更する必要があります。あまりにも長くあなたを勉強して実験するべきではありません。 –

答えて

0

ここには簡単な解決策があります。 UIViewにラベルを追加し、ラベルのテキストをクリアし、ラベルの背景色を境界線の色に設定します。ラベルの原点(x、y)をビューの原点(x、y)に設定します。ラベルの幅をUIViewの幅に設定するには、高さを1または2(UIViewの上部にある枠の高さ)に設定します。そして、そのトリックを行う必要があります。または、UIBezierPathクラスを同じものに使用することができます。

+5

なぜこれに 'UILabel'が必要ですか? 'UIView'を使わないのはなぜですか? – rmaddy

+0

私はUIViewを追加してやり遂げました。 –

1

私の知る限り、UIViewまたはそのバッキングレイヤのプロパティを使用するだけでは、望むものを得ることができません。特定の枠線(カスタムグラフィック)を含む別のUIViewを使用し、イメージの上にオーバーレイする必要があります。

1

これを行うにはいくつかの回避策があります。 1.画像ビューを他のすべての下部に追加するか、またはインデックス0を追加します。そして、borderを付けてimageを追加します。ボーダーエッジを残して残りのビューの上部を追加します。画像は上に置くことができますが、ボーダーは立体的でなければならず、残りの画像は透明でなければなりません。 2.ビューにビューを追加し、スーパービューにボーダーを追加します。あなたのビューフレームはその境界線にあるはずです。

関連する問題