ios - UIBezierPath - byRoundingCorners - 矩形

标签 ios swift

我有一个非常简单的 View Controller ..

import UIKit

class ViewController: UIViewController {

    let f = TstKocka(frame: CGRectMake(100,100, 150, 150))

    override func viewDidLoad() {
        super.viewDidLoad()

        view.addSubview(f)

    }

}

我有一个 UIView 类:

class TstKocka: UIView {


    override init(frame: CGRect) {
        super.init(frame: frame)
    }

    required init(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    override func drawRect(rect: CGRect) {

        var path = UIBezierPath(roundedRect: rect, byRoundingCorners: UIRectCorner.AllCorners, cornerRadii: CGSize(width: 2.0, height: 2.0))

        path.lineWidth = 1.0
       path.stroke()

    }

}

我正在尝试创建一个圆角矩形,但我不知道该怎么做。我读过很多教程,但没有一个对我有用。请帮助我。

最佳答案

由于您没有提供填充颜色,我猜您的矩形应具有清晰的颜色。为了使该工作有效,请将 initwithframe 更改为以下内容:

override init(frame: CGRect) {
    super.init(frame: frame)
    opaque = false
}

然后增加cornerradii值(例如到20.0、20.0)看看它是否有效! :)

编辑

填充实际上就像抚摸一样简单:

let path = UIBezierPath(roundedRect: rect, byRoundingCorners: UIRectCorner.AllCorners, cornerRadii: CGSize(width: 20.0, height: 20.0))
path.lineWidth = 1.0

UIColor.blueColor().setFill() // or whatever fill color you like
path.fill()

UIColor.redColor().setStroke()
path.stroke()

关于ios - UIBezierPath - byRoundingCorners - 矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30045025/

相关文章:

xcode - 从ios文档目录中搜索文件

ios - 为什么当我进入设备锁定屏幕并重新进入应用程序时,我的通知声音警报不会消失?

ios - 视频层上的CALayer位置动画

swift - 在符合协议(protocol)的对象数组中使用diff

iphone - 无法使用@interface将对象添加到NSMutableArray

iphone - 如何在iPhone中获得最接近的更大整数值

ios - 导航栏 Swift 中的文本颜色

IOS:UIScrollViewDelegate 不工作

iphone - 当我调整 CAEAGLLayer 大小时,OpenGL 绘图困惑

ios - 无法验证 : Could not find a CFBundlePackageType