У меня есть UIView. Мне нужно сделать только верхний левый и верхний правый углы округлены, а также иметь ширину границы по 1 точке.UiView с верхним левым и правым закругленными углами и рамкой
Любая идея?
Благодаря
У меня есть UIView. Мне нужно сделать только верхний левый и верхний правый углы округлены, а также иметь ширину границы по 1 точке.UiView с верхним левым и правым закругленными углами и рамкой
Любая идея?
Благодаря
Попробуйте это:
#import <QuartzCore/QuartzCore.h>
view.layer.cornerRadius = 8.0;
view.layer.borderWidth = 1.0;
view.layer.borderColor = [UIColor blueColor].CGColor;
однако, это будет сделать все ваши углы закруглены. Если вы не хотите этого, есть два варианта:
@property mask
здесь: http://developer.apple.com/library/ios/#DOCUMENTATION/GraphicsImaging/Reference/CALayer_class/Introduction/Introduction.html)Используйте CALayer и попробуйте этот учебник более подробно. http://nachbaur.com/blog/rendering-views-using-calayer-part-1
Очень простое и быстрое решение:
установить радиус угла так, что она привлекает все четыре углы, скругленные обычным способом
для каждого угла, который вы не хотите округленный :
Не обязательно самое изящное решение, но требуется всего лишь минутку, чтобы закодировать его!
Согласовано, не изящно, но легко и отлично работает! Благодаря!! –
вы можете достичь этого, используя путь Бейзер как это -
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(5.0, 5.0)];
[maskPath setLineWidth:1.0];
//to give stroke color
[[UIColor colorWithRed:186.0/255.0 green:186.0/255.0 blue:186.0/255.0 alpha:1.0] setStroke];
//to color your border
[[UIColor colorWithRed:242.0/255.0 green:240.0/255.0 blue:240.0/255.0 alpha:1.0] setFill];
[maskPath fill];
[maskPath stroke];
UIView С верхней левой, правой закругленные углы и тени
#import <QuartzCore/QuartzCore.h>
backView.layer.shadowColor=[UIColor blackColor].CGColor;
backView.layer.masksToBounds = NO;
backView.layer.shadowOffset = CGSizeMake(0.0f, 1.0f);
backView.layer.shadowRadius = 3;
backView.layer.shadowOpacity = 0.8;
CGFloat radius = 20.0;
CGRect maskFrame = self.backView.bounds;
maskFrame.size.height += radius;
CALayer *maskLayer1 = [CALayer layer];
maskLayer1.cornerRadius = radius;
maskLayer1.backgroundColor = [UIColor blackColor].CGColor;
maskLayer1.frame = maskFrame;
self.backView.layer.mask = maskLayer1;
Спасибо за ваш ответ! Мне не нужны все углы округлые, только верхние. Применение слоя маски не будет делать трюк (вид будет иметь borner, но не на закругленных углах). Я попробую # 1. – user1078065
# 2 решение работало – user1078065