2010-07-06 7 views
7

Я хочу показать UIToolbar с закругленными углами сверху, что было бы самым простым способом? панель инструментов не выровнена сверху по окну; он имеет запас по всем направлениям. Благодаря!UIToolbar с закругленными углами

ответ

16

Очень простой.

Прежде всего - имейте переменную IBOutlet UIToolbar в вашем .h файле вашего контроллера. Например, .

@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

Самый простой способ обойти углы зрения с помощью cornerRadiusmasksToBounds) объекта CALayer. Однако при этом у вас есть возможность округлять все углы одинаково. Чтобы использовать это свойство, вы можете поместить UIToolbar в другое представление, которое было выше, чем панель инструментов, поэтому только верх был округлен. Это будет хорошо работать, если в другом виде будут закруглены нижние углы.

Самый простой способ замаскировать вид произвольной формы - установить mask свойство CALayer на новый CAShapeLayer. В вашем случае, постройте CGPath для CAShapeLayer используя CGPathAddLineToPoint и CGPathAddArcToPoint или похожие на то, чтобы получить только верхние углы округлые.

+0

+1 для подсказки о маскировке. – Anton

Смежные вопросы