在Swift中填充颜色

问题描述:

是否有一种通用方法来填充Swift中的某个区域。在Swift中填充颜色

我在UIView,线条,椭圆,曲线等有各种形状。等 这些形状划定了一定数量的区域。 我想用一种颜色(uiColorOne)和另一种颜色(uiColorTwo)填充一个区域。

这可能吗?如果是,我该怎么做?

+0

阅读'NSBezierPath'([documentation](https://developer.apple.com/library/mac/documentation) /Cocoa/Reference/ApplicationKit/Classes/NSBezierPath_Class/index.html)) – Arc676

+0

我正在寻找一个普通的填充洪水解决方案。在撰写我的文章之前,我已经快速阅读了BézierPath的方式。 但似乎我必须分开处理周围的曲线。 希望我错了,我会看看你建议的链接。 – Michel

+0

'是否有通用的方法来填充Swift中的区域:否,因为Swift是一种编程语言,而不是UI框架。你需要的可能是UIKit,这是iOS的UI框架。你可以在Swift或Objective-C中使用它。 – Moritz

import UIKit 

override func drawRect(rect: CGRect) 
{ 
    let path = UIBezierPath() 
    path.moveToPoint(CGPoint(x: 200, y: 200)) 
    path.addLineToPoint(CGPoint(x: 200, y: 300)) 
    path.addLineToPoint(CGPoint(x: 300, y: 200)) 
    path.closePath() 
    UIColor.redColor().set() 
    path.lineWidth = 1 
    path.fill() 
} 

您将需要以开始在你的代码做一些几何形状的物品覆盖drawRect(才覆盖,从来没有称呼它)。代码片段创建一个基于点的元素(注意不是像素),并用redColor填充它。大多数情况下,你使用的元素都是UIBezierPath,所以我建议你从苹果上看得很清楚。这里有文档,因为它有一些很棒的方法,可以帮助你解决你每一天的困难:UIBezierPath

+0

我的drawRect已经正常工作了。使用UIBezierPath的问题是我需要先准备一个路径然后填充它。这不是我想要的(至少在最好的情况下)。我有一堆线条和曲线,除去了一些我想要填充的区域(如果可能的话,不必担心周围的形状)。如果我可以开始着色一个点然后递归地(对于相邻点)进行着色,那将是理想的。 – Michel

+0

你想以编程方式为屏幕上的每个元素着色?你介意颜色(对于所有人来说是不同的还是相同的?)你能分享一些代码来找出你想要做的吗?谢谢 – Korpel

+0

在这一点上,我真的没有代码显示,因为不工作。 我只想知道如何填充一个区域。而且这个地区并没有被预测到。想象一下,例如几十条线和曲线遍布视图,你会得到很多区域。 – Michel