2017-07-21 17 views
1
cString = cString.substring(from: advance(cString.startIndex, 1)) 

//我是swift3的新手请建议我在swift中替换此行3. Xcode是不能转换这一行,并给予错误的未解决的标识符提前使用..我需要从索引1传递字符串值。我有快速1.2中的代码,但我无法得到所需的快速输出3

+0

你可以用一个例子你真正需要做的解释? – Suryakant

+0

viewToConfig.backgroundColor = UIColor.hexStringToUIColor(“#007AFF”)if(cString.hasPrefix(“#”)){cString = cString.substring(from:advance(cString.startIndex,1))}。 如果(cString.characters.count!= 6){ return UIColor.gray } ///在#秒后传递rgb值如果条件Suryakant – MIOSY

+0

请参阅下面的答案 – Suryakant

回答

1

雨燕3.0

您需要使用String方法index(_:offsetBy:)推进指数:

let index = cString.index(cString.startIndex, offsetBy: 1)  
cString = cString.substring(from: index) 
+0

感谢Jadeep的工作。我已经在很多方面尝试过..现在它已被修复谢谢 – MIOSY

+0

@ yogi如果你发现答案有用,你可以接受它,所以其他用户可以直接使用它。 – Jaydeep

0

我也在我的一些项目中使用这个,你可以使用这个以及

func colorWithHexString (_ hex:String, alpha: Float) -> UIColor { 

      var cString:String = hex.trim() 

      if (cString.hasPrefix("#")) { 
       cString = (cString as NSString).substring(from: 1) 
      } 

      if (cString.characters.count != 6) { 
       return UIColor.gray 
      } 

      let rString = (cString as NSString).substring(to: 2) 
      let gString = ((cString as NSString).substring(from: 2) as NSString).substring(to: 2) 
      let bString = ((cString as NSString).substring(from: 4) as NSString).substring(to: 2) 

      var r:CUnsignedInt = 0, g:CUnsignedInt = 0, b:CUnsignedInt = 0; 
      Scanner(string: rString).scanHexInt32(&r) 
      Scanner(string: gString).scanHexInt32(&g) 
      Scanner(string: bString).scanHexInt32(&b) 

      return UIColor(red: CGFloat(r)/255.0, green: CGFloat(g)/255.0, blue: CGFloat(b)/255.0, alpha: CGFloat(alpha)) 
    }