繁体   English   中英

UiView带有左上角和右上角以及边框

[英]UiView with top left and right rounded corners and border

我有一个UIView。 我只需要将它的左上角和右上角四舍五入,并且还要有1点边框宽度。

任何想法?

谢谢

尝试这个:

#import <QuartzCore/QuartzCore.h>

view.layer.cornerRadius = 8.0;
view.layer.borderWidth = 1.0;
view.layer.borderColor = [UIColor blueColor].CGColor;

但是,它会让你所有的角都圆润。 如果您不想这样,有两种选择:

  1. 使用CoreGraphics( 如何在Core Graphics / Quartz 2D中绘制圆角矩形? )或自己绘制圆角
  2. 使用面具(此处为CALayer的@property maskhttp//developer.apple.com/library/ios/#DOCUMENTATION/GraphicsImaging/Reference/CALayer_class/Introduction/Introduction.html

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;

你可以使用这样的beizer路径实现这一点 -

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];

一个非常简单快速的解决方案:

  1. 设置角半径,以便以正常方式绘制所有四个角

  2. 对于您不想要舍入的每个角落:

    • 创建一个小方形UIView,边长等于角半径
    • 将其添加为主视图的子视图(具有圆角的那个)
    • 定位它使它恰好位于角落之上
    • 将其背景颜色设置为与主视图的背景相同

不一定是最优雅的解决方案,但只需要一分钟来编写代码!

使用CALayer并尝试本教程更多信息。 http://nachbaur.com/blog/rendering-views-using-calayer-part-1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM