私はしばらくこのことについて考えてきました。基本的には、下のコードはUIView
に境界線を描画しますが、UIView
をサブビューとして追加すると、UIView
- 境界線の上に表示されます。このよう境界線を描き、すべてのサブビューを上に保ちます
:
どのように(のようにきれいにできる限りは)、すべてのサブビューの上の境界線を維持していますか?
これは私がこれまで持っているものである。このよう
。しかし、上記のように、それはすべてのサブビューの上に境界線を保持しません。
CGPathRef CGPathRect = CGPathCreateWithRect(rect, 0);
CGContextRef context = UIGraphicsGetCurrentContext();
CGPathRef border = CGPathCreateCopyByStrokingPath(rect.CGPath, NULL, 5.0f, kCGLineCapButt, kCGLineJoinMiter, 0);
CGContextAddPath(context, border);
CGContextSetFillColorWithColor(context, someCGColor);
CGContextDrawPath(context, kCGPathFill);
CGPathRelease(border);
私は国境自体の別々のUIView
を作成することができ、そしてちょうどそのUIView
下にサブビューを挿入し、それはむしろハック感じています。より良い方法があれば、それについて聞いてみたいと思います。
view.layer.borderWidthとview.layer.borderColorを使用しない理由はありますか? –
これは私が尋ねようとしていたものです。なぜ高価なコアグラフィックスのものを使用するのですか、まさにそれを行うview.layerの2つのプロパティがあります。 – Aragunz
これは、 'layer.border'が円形のビューに適合しないためです。つまり、UIBezierPathを介して角を丸めると、私が何を言っているのかが分かります。 'layer.border'は四角形です。 –