- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想为每个 UIBezierPath 部分设置不同的描边颜色。但是顺序完全错误,我不知道如何解决。
这就是我想要的:
这就是我得到的:
好像顺序错了。有没有办法将颜色“绑定(bind)”到 bezierPath 并将其附加到上下文?我的代码如下。谢谢!
let size = CGSize(width: 134, height:51)
UIGraphicsBeginImageContext(size)
let context = UIGraphicsGetCurrentContext()
//// Rectangle Drawing
let rectanglePath = UIBezierPath(roundedRect: CGRect(x: 0.5, y: 0.5, width: 126, height: 50), cornerRadius: 3)
UIColor.lightGray.setStroke()
rectanglePath.lineWidth = 1
rectanglePath.stroke()
let clipPath: CGPath = rectanglePath.cgPath
context?.addPath(clipPath)
//// Rectangle 2 Drawing
let rectangle2Path = UIBezierPath(roundedRect: CGRect(x: 3, y: 3, width: 121, height: 45), cornerRadius: 3)
UIColor.green.setFill()
rectangle2Path.fill()
let clipPathh: CGPath = rectangle2Path.cgPath
context?.addPath(clipPathh)
let rectangle3Path = UIBezierPath(roundedRect: CGRect(x: 128, y: 18, width: 6, height: 14), byRoundingCorners: [.topRight, .bottomRight], cornerRadii: CGSize(width: 3, height: 3))
UIColor.gray.setFill()
rectangle3Path.fill()
let clipPathhh: CGPath = rectangle3Path.cgPath
context?.addPath(clipPathhh)
context?.closePath()
// Convert to UIImage
let cgimage = context!.makeImage();
let uiimage = UIImage(cgImage: cgimage!)
// End the graphics context
UIGraphicsEndImageContext()
image.image = uiimage;
最佳答案
明白了。自从我使用贝塞尔曲线路径以来已经有一段时间了,但经过一些尝试发现了问题 - 一切都按顺序进行。代码应该是:
let size = CGSize(width: 134, height:51)
UIGraphicsBeginImageContext(size)
let context = UIGraphicsGetCurrentContext()
//// Rectangle Drawing
let rectanglePath = UIBezierPath(roundedRect: CGRect(x: 0.5, y: 0.5, width: 126, height: 50), cornerRadius: 3)
UIColor.lightGray.setStroke()
rectanglePath.lineWidth = 1
let clipPath: CGPath = rectanglePath.cgPath
context?.addPath(clipPath)
rectanglePath.stroke()
//// Rectangle 2 Drawing
let rectangle2Path = UIBezierPath(roundedRect: CGRect(x: 3, y: 3, width: 121, height: 45), cornerRadius: 3)
UIColor.green.setFill()
let clipPathh: CGPath = rectangle2Path.cgPath
context?.addPath(clipPathh)
rectangle2Path.fill()
let rectangle3Path = UIBezierPath(roundedRect: CGRect(x: 128, y: 18, width: 6, height: 14), byRoundingCorners: [.topRight, .bottomRight], cornerRadii: CGSize(width: 3, height: 3))
UIColor.gray.setFill()
let clipPathhh: CGPath = rectangle3Path.cgPath
context?.addPath(clipPathhh)
rectangle3Path.fill()
// Convert to UIImage
let cgimage = context!.makeImage();
let uiimage = UIImage(cgImage: cgimage!)
// End the graphics context
UIGraphicsEndImageContext()
imageView.image = uiimage;
请注意,您在将路径添加到上下文后执行填充/描边。另外,请注意 closePath 调用没有影响,因为您已经通过定义 rect 提供了整个路径。
关于swift - 每个 UIGraphicsGetCurrentContext 不同的 setStroke 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40698994/
当您使用具有笔划宽度的 xml 将可绘制对象分配给 View 时,它工作正常。当我尝试在运行时动态分配它并更改笔划宽度时,它似乎不起作用。 您可以在快照中找到结果和代码here 基本上, 左 View
我遇到以下问题:我想创建一个新的 BasicStroke 并将其设置在 Graphics2D 对象上。这是我为该问题编写的代码: BasicStroke stil = new BasicStr
我试图了解 JavaFX Canvas setStroke 方法的工作原理。它不会将像素的颜色设置为所需的值。不过 setFill 方法没有问题。 Canvas canvas = new Canvas
这个问题已经有答案了: Can we call a method at class level rather than in a method? (3 个回答) 已关闭 3 年前。 我正在启动 Jav
这两种设置描边颜色的方式有区别吗? CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor) [[UIColor re
如何在 Kotlin 中执行固定行程?这不会作为按钮背景中的方法出现。这是我试图在 Java 中实现的目标: ((GradientDrawable) mAllButton.getBackground(
我正在解决 Big Nerd Ranch 的 iOS 编程指南中有关 UIView 子类化的章节中的挑战。 下面有一些代码可以用随机颜色绘制同心圆。并且,摇晃后,它们应该全部变成红色。事实并非如此,因
我在 Core Graphics 中使用圆弧绘制一个完整的圆。圆的每个圆弧都是不同的颜色。如果我使用标准颜色(例如 [UIColor redColor] ),它会很好地绘制。但是,如果我指定自定义颜色
我想为每个 UIBezierPath 部分设置不同的描边颜色。但是顺序完全错误,我不知道如何解决。 这就是我想要的: 这就是我得到的: 好像顺序错了。有没有办法将颜色“绑定(bind)”到 bezie
我在 ImageView 中有一个 Drawable,我正在运行时对其进行修改,以便为用户的排名提供自定义颜色。修改它的方法在低于 20 的 Android 版本上工作正常,但高于它的 drawabl
我是一名优秀的程序员,十分优秀!