有时我想对字符串中的每个字符做一些简单的事情.不幸的是,因为字符串是不可变的,除了循环遍历字符串之外没有好的方法可以做到这一点,这可能非常冗长.如果你使用Stream代替它,它可以做得更短,只需要一两行.
有没有办法将a转换String
成Stream<Character>
?
我正在尝试合并两个重叠的UIBezierPaths UIBezierPath.append
,我希望填充重叠空间.我尝试将usesEvenOddFillRule
属性设置为false
,但它仍然没有填充.这是问题的最小例子:
override func draw(_ rect: CGRect) {
let firstShape = UIBezierPath()
firstShape.move(to: CGPoint(x: 100, y: 100))
firstShape.addLine(to: CGPoint(x: 100, y: 150))
firstShape.addLine(to: CGPoint(x: 150, y: 170))
firstShape.close()
let secondShape = UIBezierPath(rect: CGRect(x: 125, y: 125, width: 75, height: 75))
let combined = UIBezierPath()
combined.append(firstShape)
combined.append(secondShape)
UIColor.black.setFill()
combined.fill()
}
Run Code Online (Sandbox Code Playgroud)
这产生以下形状:
我希望它看起来像:
move(to: CGPoint)
在一个UIBezierPath上使用时似乎也会出现此问题.如果要在同一个UIBezierPath上绘制这两个形状,则会出现同样的问题.
有谁知道如何填补重叠区域?优选地,解决方案在进行时也可以工作addClip()
algorithm ×1
append ×1
java ×1
java-8 ×1
java-stream ×1
string ×1
swift ×1
uibezierpath ×1
uiview ×1