web-dev-qa-db-ja.com

Xcode 4のインターフェイスビルダーで線を引く方法

インターフェイスビルダーで簡単なはめ込み線を描画して、リスト内のいくつかの項目を分離し、UIをもう少し整頓したいと思います。オブジェクトライブラリに「線」または類似のオブジェクトが表示されず、Interface Builderで描画コマンドを見つけることができないようです。

27
Kongress

backgroundColorを適切な色に設定した非常に狭いUIViewを使用しています。

62
Drew C

IPhone UIライブラリには行がありません。 Max OS Xのこの機能はNSBoxによって提供されましたが、iPhoneには対応するUI要素がありません。

7
EJV

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];
7
JoriDor

ビューの代わりに、ラベルを使用して適切な背景色を設定してみませんか?

1
CodeRed

水平線のオプションとして進行状況ビューを使用できます。色合いの色を変更して、100%の1に進みます。

0
Repose

インターフェイスビルダーでは、インセットラインに不可欠なシャドウを描画できません。 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>を必ずインポートしてください。

0
chongsj

ビューを使って狭くし、色を変えて線のように見せました。しかし、私の問題は、垂直スクロールビューで線を使用していて、線もスクロールされることです。

0
confucizious

補足として、Interface Builderで、高さが2ポイントに設定されているビューを追加します。 IBOutletをそのビューに接続し、レイヤーの境界線の色と幅を設定します。

self.mySeparatorLine.layer.borderWidth = 1.0f; self.mySeparatorLine.layer.borderColor = [UIColor lightGrayColor] .CGColor;

0
user2791976