インターフェイスビルダーで簡単なはめ込み線を描画して、リスト内のいくつかの項目を分離し、UIをもう少し整頓したいと思います。オブジェクトライブラリに「線」または類似のオブジェクトが表示されず、Interface Builderで描画コマンドを見つけることができないようです。
backgroundColor
を適切な色に設定した非常に狭いUIViewを使用しています。
IPhone UIライブラリには行がありません。 Max OS Xのこの機能はNSBoxによって提供されましたが、iPhoneには対応するUI要素がありません。
UIViewがパフォーマンスに影響する可能性がある場合は、CoreGraphicsのCAShapeLayersを使用してコードに線を引くことができます。
すべてのUIViewにはCALayerがあるため、線を引き、ビューCALayerに追加します。これは、カスタムUIViewのdrawRectまたはビューコントローラーで行うことができます。
(プロジェクトにQuartzフレームワークを必ず追加してください)
UIBezierPath *linePath = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0,self.view.frame.size.width, 1)];
//shape layer for the line
CAShapeLayer *line = [CAShapeLayer layer];
line.path = [linePath CGPath];
line.fillColor = [[UIColor blackColor] CGColor];
line.frame = CGRectMake(xPosition, yPosition, self.view.frame.size.width,1);
[self.view.layer addSublayer:line];
ビューの代わりに、ラベルを使用して適切な背景色を設定してみませんか?
水平線のオプションとして進行状況ビューを使用できます。色合いの色を変更して、100%の1に進みます。
インターフェイスビルダーでは、インセットラインに不可欠なシャドウを描画できません。 Photoshopを使用している場合は、これを知っています。
次のコードは、線が白/ベージュの背景の前にある場合、「インセット」を描画します。
UIView *line = [[UIView alloc] initWithFrame:CGRectMake(0, 0, width, 1.0f)];
line.backgroundColor = [UIColor colorWithRed:(200.0f/255.0f) green:(200.0f/255.0f) blue:(200.0f/255.0f) alpha:1.0f];
line.layer.shadowColor = [UIColor darkGrayColor].CGColor;
line.layer.shadowOffset = CGSizeMake(0.0f, 1.0f);
line.layer.shadowRadius = 0.5f;
line.layer.shadowOpacity = 0.4f;
line.layer.masksToBounds =NO;
[Background addSubview:line];
<QuartzCore/QuartzCore.h>を必ずインポートしてください。
ビューを使って狭くし、色を変えて線のように見せました。しかし、私の問題は、垂直スクロールビューで線を使用していて、線もスクロールされることです。
補足として、Interface Builderで、高さが2ポイントに設定されているビューを追加します。 IBOutletをそのビューに接続し、レイヤーの境界線の色と幅を設定します。
self.mySeparatorLine.layer.borderWidth = 1.0f; self.mySeparatorLine.layer.borderColor = [UIColor lightGrayColor] .CGColor;