2010-07-06 8 views
7

가장 둥근 모서리가있는 UIToolbar을 표시하고 싶습니다. 가장 쉬운 방법은 무엇입니까? 도구 모음이 창에서 맨 위에 정렬되지 않습니다. 그것은 주변에 여백을 가지고 있습니다. 감사!모서리가 둥근 UIToolbar

답변

16

매우 간단합니다.

먼저보기 컨트롤러의 .h 파일에 UIToolbar의 IBOutlet 변수가 있어야합니다. 예를 들면.

@interface TextFormattedViewController : UIViewController { 
    IBOutlet UIToolbar *tBar; 
} 

는 이제 뷰 컨트롤러 파일의 당신의하는 .m 파일에 그냥 당신을위한 마술로 작동하는 코드 &을 다음 놓습니다. 그러나 어떤 질문이라도 코멘트를 추가하십시오.

#import "TextFormattedViewController.h" 
#import <QuartzCore/QuartzCore.h> 
@implementation TextFormattedViewController 
- (void)viewDidLoad { 
    // following statement is must. 
    tBar.clipsToBounds=YES; 
    CALayer *l=tBar.layer; 
    // set corner radious 
    [l setCornerRadius:10]; 
    // to apply border on corners 
    [l setBorderColor:[[UIColor redColor] CGColor]]; 
    // to apply set border width. 
    [l setBorderWidth:5.0]; 
} 
+1

당신의 위대한 제안에 대해 감사합니다! 최상의 외관을 위해 setCornerRadius 만 변경할 수 있습니다 (마지막 두 개의 호출을 삭제합니다). 좋은 앤티 엘리 어싱 된 둥근 모서리가 만들어집니다. 그러나 네 모퉁이는 둥글다 ... – rjobidon

2

cornerRadius (및 masksToBounds) 속성이 CALayer 인보기의 가장 자리를 둥글게 만드는 가장 쉬운 방법입니다. 그러나, 당신은 모든 모서리를 동등하게 반올림하는 옵션 만 가질 수 있습니다. 이 속성을 사용하려면 UIToolbar을 도구 모음보다 더 큰 다른보기에 놓을 수 있으므로 위쪽 만 반올림되었습니다. 다른 뷰에 둥근 모서리가 둥근 경우에는 잘 작동합니다.

뷰를 임의의 모양으로 마스크하는 가장 쉬운 방법은 mask 속성을 CALayer으로 설정하고 새로운 CAShapeLayer으로 설정하는 것입니다. 귀하의 경우, CGPathAddLineToPoint 및또는 이와 유사한 것을 사용하여 CAShapeLayer에 대해 CGPath을 작성하거나 상단 모서리 만 둥글게하십시오.

+0

+1 마스킹에 대한 팁. – Anton

관련 문제