相关疑难解决方法(0)

如何只为UIView的左上角和右上角设置cornerRadius?

有没有办法cornerRadius只设置一个左上角和右上角UIView

我尝试了以下内容,但最终没有看到视图了.

UIView *view = [[UIView alloc] initWithFrame:frame];

CALayer *layer = [CALayer layer];
UIBezierPath *shadowPath = [UIBezierPath bezierPathWithRoundedRect:frame byRoundingCorners:(UIRectCornerTopLeft|UIRectCornerTopRight) cornerRadii:CGSizeMake(3.0, 3.0)];
layer.shadowPath = shadowPath.CGPath;
view.layer.mask = layer;
Run Code Online (Sandbox Code Playgroud)

cocoa-touch cornerradius uiview ios

372
推荐指数
20
解决办法
21万
查看次数

圆角仅在UIView之上

嗨,我正在寻找一个干净的解决方案,没有覆盖drawRect或类似的东西UIView,在视图的顶部创建一个圆角.我的主要问题是如果视图调整大小或类似的话,创建变量解决方案.有清洁的解决方案吗?Apple也是第一个表项目.做到这一点并不难.

core-graphics objective-c rounded-corners uiview

45
推荐指数
5
解决办法
4万
查看次数

目前设置UIView角落半径的"正确"方法是什么?

设置UIView角的半径可以通过以下方式完成:

  1. 设置layercornerRadius属性:

    view.layer.cornerRadius = 5;
    view.layer.masksToBounds = true;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 涂上面膜:

    func roundCorners(corners:UIRectCorner, radius: CGFloat) {
        let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
        let mask = CAShapeLayer()
        mask.path = path.cgPath
        self.layer.mask = mask
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 覆盖draw(_:):

    func draw(_ rect: CGRect) {
        // Size of rounded rectangle
        let rectWidth = rect.width
        let rectHeight = rect.height
    
        // Find center of actual frame to set rectangle in middle
        let xf: CGFloat = (self.frame.width …
    Run Code Online (Sandbox Code Playgroud)

uiview ios swift

10
推荐指数
5
解决办法
5878
查看次数

Swift中UIView的圆顶角落

我正在尝试使用下面的代码来绕顶角

func roundCorners(corners:UIRectCorner, radius: CGFloat) {
        let path = UIBezierPath(roundedRect: self.bounds,
                                byRoundingCorners: corners,
                                cornerRadii: CGSize(width: radius, height: radius))
        let maskLayer = CAShapeLayer()
        maskLayer.frame = self.bounds
        maskLayer.path = path.cgPath
        self.layer.mask = maskLayer
    }
Run Code Online (Sandbox Code Playgroud)

使用 myView.roundCorners(corners:[.topLeft, .topRight], radius: radius)

但它正在围绕观点的一边:
在此输入图像描述

这是在tableView sectionHeader中,如果我向下滚动然后使用相同的代码向上舍入: 在此输入图像描述

顶部折扣视角也使用相同的功能进行四舍五入.

感谢帮助.

更新 如果我修复视图上的宽度然后它工作正常.

uitabbarcontroller uitableview cashapelayer uibezierpath swift

4
推荐指数
2
解决办法
3077
查看次数