Я хочу отобразить UIToolbar
со скругленными углами сверху, как проще всего? панель инструментов не выровнена по верхнему краю окна; у него есть запас по всему периметру. Спасибо!
UIToolbar с закругленными углами
Ответы (2)
Очень простой.
Прежде всего - иметь переменную 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
или что-то подобное, чтобы скруглить только верхние углы.