私はUIView
他のサブビューを含むを持っています。これにUIView
境界線を適用しており、全体に境界線が適用されていUIView
ます。そのためには、最初の画像を参照してください。
ただし、タイトルの周囲に境界線が表示されないようにして"Leaderboard"
ください。その部分だけの境界線を削除するにはどうすればよいですか。下の画像を参照してください。ヘッダーボードの周囲に境界線がないことを確認してください。
いいえ、CALayer
境界線はその動作をサポートしていません。
ただし、これを実装する必要がある場合は、別の方法を試すことができます。メインビューの両側に、背景色として目的の境界線の色を使用して、nポイント幅の不透明なサブビューを追加してみてください。
このコードを追加します:
CGSize mainViewSize = theView.bounds.size;
CGFloat borderWidth = 2;
UIColor *borderColor = [UIColor redColor];
CGFloat heightfromTop = 25;
UIView *leftView = [[UIView alloc] initWithFrame:CGRectMake(0, heightfromTop borderWidth, mainViewSize.height-heightfromTop)];
UIView *rightView = [[UIView alloc] initWithFrame:CGRectMake(mainViewSize.width - borderWidth, heightfromTop, borderWidth, mainViewSize.height-heightfromTop)];
leftView.opaque = YES;
rightView.opaque = YES;
leftView.backgroundColor = borderColor;
rightView.backgroundColor = borderColor;
[mainView addSubview:leftView];
[mainView addSubview:rightView];
これにより、両側にのみ境界線が追加されます。上部と下部についても同じアイデアを繰り返します。
注意:heightfromTop
ボーダービューを表示したくない上部セクションの高さです。必要に応じて変更できます。
をサブクラス化して、次のようUIView
に実装できます。drawRect
- (void)drawRect:(CGRect)rect
{
float borderSize = 3.0f;
//draw the bottom border
CGContextSetFillColorWithColor(context, [UIColor blueColor].CGColor);
CGContextFillRect(context, CGRectMake(0.0f, self.frame.size.height - borderSize, self.frame.size.width, borderSize));
//draw the right border
CGContextSetFillColorWithColor(context, [UIColor blueColor].CGColor);
CGContextFillRect(context, CGRectMake(0.0f,0.0f, borderSize,self.frame.size.height));
//draw the left border
CGContextSetFillColorWithColor(context, [UIColor blueColor].CGColor);
CGContextFillRect(context, CGRectMake(self.frame.size.width - borderSize,0.0f, borderSize,self.frame.size.height));
}
UIView
次に、必要なビューを作成するためにサブクラスを使用する必要があります。