MLy*_*yck 10 xcode swift xcode7 swift2 xcode7-beta2
我最近更新到Xcode 7,beta 3.
而且我遇到了一些问题,我似乎无法在SO上找到任何问题.
当我运行我的应用程序时,我得到3个错误:
使用未解析的标识符'kCGBlendModeMultiply'
使用未解析的标识符'kCGLineCapRound'
使用未解析的标识符'kCGLineJoinMiter'
然而,后两个,消失了,虽然我认为它们将在第一个修复后出现(因此我将其包括在这个问题中).
我没有在发行说明中看到有关这些被删除的内容?所以我有点不知所措.我当然尝试重写这些行,但我使用的3件事不再显示为选项.如果他们刚刚使用最新的Swift 2.0,我可以使用什么呢?
这是第一个错误的代码.
func alpha(value:CGFloat)->UIImage
{
UIGraphicsBeginImageContextWithOptions(self.size, false, 0.0)
let ctx = UIGraphicsGetCurrentContext()
let area = CGRect(x: 0, y: 0, width: self.size.width, height: self.size.height)
CGContextScaleCTM(ctx, 1, -1);
CGContextTranslateCTM(ctx, 0, -area.size.height)
CGContextSetBlendMode(ctx, kCGBlendModeMultiply)
CGContextSetAlpha(ctx, value)
CGContextDrawImage(ctx, area, self.CGImage)
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage;
}
Run Code Online (Sandbox Code Playgroud)
这是后两个错误的代码:
for layer in [ self.top, self.middle, self.bottom ] {
layer.fillColor = nil
layer.strokeColor = UIColor.whiteColor().CGColor
layer.lineWidth = 4
layer.miterLimit = 4
layer.lineCap = kCALineCapRound
layer.masksToBounds = true
let strokingPath = CGPathCreateCopyByStrokingPath(layer.path, nil, 4, kCGLineCapRound, kCGLineJoinMiter, 4)
layer.bounds = CGPathGetPathBoundingBox(strokingPath)
layer.actions = [
"strokeStart": NSNull(),
"strokeEnd": NSNull(),
"transform": NSNull()
]
self.layer.addSublayer(layer)
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!:)
cou*_*elk 17
这应该工作:
CGContextSetBlendMode(ctx, CGBlendMode.Multiply)
Run Code Online (Sandbox Code Playgroud)
......甚至只是这个:
CGContextSetBlendMode(ctx, .Multiply)
Run Code Online (Sandbox Code Playgroud)
如果你Ctrl-click在CGContextSetBlendMode,然后从它的声明跳跃(以同样的方式)来的声明CGBlendMode,那么你将看到:
enum CGBlendMode : Int32 {
/* Available in Mac OS X 10.4 & later. */
case Normal
case Multiply
case Screen
case Overlay
// ...
}
Run Code Online (Sandbox Code Playgroud)
同样,产生错误的另一行应更改为:
let strokingPath = CGPathCreateCopyByStrokingPath(layer.path, nil, 4, .Round, .Miter, 4)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5371 次 |
| 最近记录: |