iphone - 在UIView上部分设置渐变,一半颜色为渐变,一半为单色

标签 iphone swift ios9

尝试显示进度条并将其自定义,使用 UIView 将其框架设置为进度百分比。假设框架宽度的 20% 并制作了渐变,但其余 80% 应该是白色,并在其上定义百分比的文本。

面临的问题是无法显示文本集 UILabel 而不是 UIView 但文本不显示。请指导。 以下是我尝试过的。

let view: UILabel = UILabel(frame: CGRectMake(0.0, self.scrollMainView.frame.size.height-50, self.view.frame.size.width/5, 50))
    let gradient: CAGradientLayer = CAGradientLayer()
    gradient.frame = view.bounds
    gradient.locations = [0.0 , 1.0]
    gradient.startPoint = CGPoint(x: 0.0, y: 0.5)
    gradient.endPoint = CGPoint(x: 1.0, y: 0.5)
    let color0 = UIColor(red:71.0/255, green:198.0/255, blue:134.0/255, alpha:1.0).CGColor
    let color1 = UIColor(red:25.0/255, green:190.0/255, blue: 205.0/255, alpha:1.0).CGColor
   // let color2 = UIColor(red:0.0/255, green:0.0/255, blue: 0.0/255, alpha:1.0).CGColor

    gradient.colors = [color1, color0]
    view.layer.insertSublayer(gradient, atIndex: 0)
    self.scrollMainView.addSubview(view)

    view.text = "20%"
    view.textColor = UIColor.blackColor()

    view.layer.shadowColor = UIColor.blackColor().CGColor
    view.layer.shadowOpacity = 1
    view.layer.shadowOffset = CGSizeZero
    view.layer.shadowRadius = 2

最佳答案

我无法从你的问题中准确理解你的问题,但我只会根据问题标题来回答。要获得一半颜色渐变和一半单色,您必须使用三种颜色渐变并相应地设置它们的位置:

gradient.colors = [color1,color1, color0]
gradient.locations = [0.0, 0.5, 1.0]

这样,您将绘制从 color1 到 color1 的渐变(实际上是单色)并用它填充框架区域的 50%,以及从 color1 到 color0 的渐变将填充框架的另一半。

关于iphone - 在UIView上部分设置渐变,一半颜色为渐变,一半为单色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38393968/

相关文章:

iphone - writeToFile路径?

swift - 序列类型实现

ios - Parse 中的交叉引用列以决定在 View Controller 上显示哪些用户。 Swift,用户搜索设置

ios - 混合方法 : Programmatically dismiss system dialogs like “<App> would like to access your contacts” in iOS

javascript - 在javascript中的iphone/ipad上强制停止动量滚动

iphone - 如何使添加到 UITableViewCell 内容 View 的 UIView 适合其范围?

iphone - 如何更改 iPhone 中 UIPickerView 的背景颜色

ios - 在 Swift 中更新来自另一个类的对象的实例变量

Xcode 6.4 不支持 iOS 9

支持服务器的 iOS 9 ATS SSL 错误