2010-07-06 43 views
7

Tôi muốn hiển thị một UIToolbar với các góc bo tròn ở trên cùng, cách nào là cách dễ nhất? thanh công cụ không được căn chỉnh trên cửa sổ; nó có một biên độ xung quanh. Cảm ơn!UIToolbar với các góc tròn

Trả lời

16

Rất đơn giản.

Trước hết - có biến IBOutlet của UIToolbar trong tệp .h của bộ điều khiển chế độ xem của bạn. Ví dụ.

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

Bây giờ trong file .m bạn xem tập tin điều khiển của bạn chỉ cần đặt đoạn mã sau & nó sẽ làm việc như một ma thuật cho bạn. Tuy nhiên, vui lòng thêm nhận xét nếu có bất kỳ truy vấn nào.

#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

Cảm ơn đường cho đề xuất tuyệt vời của bạn! Để có cái nhìn tốt nhất, chúng tôi chỉ có thể thay đổi setCornerRadius (và thả hai cuộc gọi cuối cùng). Nó tạo ra các góc tròn chống răng cưa tốt đẹp. Tuy nhiên tất cả bốn góc được làm tròn ... – rjobidon

2

Cách dễ nhất để làm tròn các góc của chế độ xem là với thuộc tính cornerRadius (và masksToBounds) của CALayer. Tuy nhiên, với điều đó bạn chỉ có tùy chọn làm tròn tất cả các góc bằng nhau. Để sử dụng thuộc tính đó, bạn có thể đặt UIToolbar vào chế độ xem khác cao hơn thanh công cụ, vì vậy chỉ có phần trên được làm tròn. Điều này sẽ hoạt động tốt nếu một chế độ xem khác sẽ làm tròn các góc dưới cùng.

Cách dễ nhất để che dấu chế độ xem thành hình dạng tùy ý là đặt thuộc tính mask của CALayer thành CAShapeLayer mới. Trong trường hợp của bạn, hãy tạo CGPath cho CAShapeLayer bằng cách sử dụng CGPathAddLineToPointCGPathAddArcToPoint hoặc tương tự để chỉ làm tròn các góc trên cùng.

+0

+1 để biết mẹo về mặt nạ. – Anton