首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MKOverlay颜色错配在XCode 6和Swift中的应用

MKOverlay颜色错配在XCode 6和Swift中的应用
EN

Stack Overflow用户
提问于 2014-12-03 13:26:55
回答 1查看 435关注 0票数 0

用MKOverlayPathRenderer.fillColor设置UIColor会显示错误的颜色。

示例:

对于,RGB 0,255,0应该显示绿色。按预期工作:

代码语言:javascript
复制
 func mapView(mapView: MKMapView!, rendererForOverlay overlay: MKOverlay!) -> MKOverlayRenderer!
{
    if overlay is MKCircle {
        var circle = MKCircleRenderer(overlay: overlay)
        circle.fillColor = UIColor(red: 0, green: 255, blue: 0, alpha: 0.5)
        return circle
    } else {
        return nil
    }
}

结果:http://i.imgur.com/f0U3s9L.png

因此,我现在试图设置特定的颜色,接近青色和它的渲染白色。

代码语言:javascript
复制
func mapView(mapView: MKMapView!, rendererForOverlay overlay: MKOverlay!) -> MKOverlayRenderer!
{
    if overlay is MKCircle {
        var circle = MKCircleRenderer(overlay: overlay)
        circle.fillColor = UIColor(red: 43, green: 229, blue: 227, alpha: 1)
        return circle
    } else {
        return nil
    }
}

结果:http://i.imgur.com/8ZbVjcJ.png

我在那漏掉了什么吗?我如何获得我想要的RGB值?谢谢你的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-03 13:53:13

添加此扩展以避免在需要时反复键入/255.0

代码语言:javascript
复制
extension UIColor {

    convenience init(R r: Int, G g: Int, B b:Int, A a:CGFloat) {
        self.init(red: CGFloat(r)/255.0, green: CGFloat(g)/255.0, blue: CGFloat(b)/255.0, alpha: a)
    }

    convenience init(R r: Int, G g: Int, B b:Int) {
        self.init(R: r, G: g, B: b, A: 1.0)
    }
}

那你就可以跟我一起去了

代码语言:javascript
复制
circle.fillColor = UIColor(R: 0, G: 255, B: 0, A: 0.5)

代码语言:javascript
复制
circle.fillColor = UIColor(R: 43, G: 229, B: 227)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27272921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档