UIToolbar с закругленными углами - PullRequest
8 голосов
/ 06 июля 2010

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

Ответы [ 2 ]

16 голосов
/ 06 июля 2010

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

Прежде всего - добавьте переменную 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];
}
3 голосов
/ 06 июля 2010

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

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

...