Я хочу отобразить a UIToolbar
со скругленными углами на вершине, каков был бы самый легкий путь? панель инструментов не выравнивается вершиной на окне; это имеет поле все вокруг.Спасибо!
Очень просто.
Прежде всего - имейте переменную 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];
}
Самый простой способ округлить углы вида - использовать свойство cornerRadius
(и masksToBounds
) в CALayer
. Однако при этом у вас есть только возможность одинаково закруглить все углы.Чтобы использовать это свойство, вы можете поместить UIToolbar
в другое представление, которое было выше панели инструментов, поэтому закруглялась только верхняя часть. Это будет хорошо работать, если у другого вида будут закругленные нижние углы.
Самый простой способ замаскировать вид произвольной формы - установить свойство mask
для CALayer
на новый CAShapeLayer
. В вашем случае создайте CGPath
для CAShapeLayer
, используя CGPathAddLineToPoint
и CGPathAddArcToPoint
или аналогичный, чтобы скруглить только верхние углы.