我正在使用绘图应用程序,当用户选择画笔大小/颜色/不透明度时,我会在屏幕中央显示画笔的小预览。如果值没有更新,我想在几秒后淡出。当我尝试实现类似here时,预览不会在更新滑块值时重新出现。我尝试过很多东西,但似乎无法让它发挥作用。我的代码摘录如下。如果您对我如何做到这一点有任何想法,请告诉我。
滑块值已更改
func colorDrawDidChange(sender:UISlider!) {
if (sender.tag == 100) {
self.red = CGFloat(sender.value)
}
else if (sender.tag == 101) {
self.blue = CGFloat(sender.value)
}
else {
self.green = CGFloat(sender.value)
}
drawPreview()
animateOut(previewView)
}
绘制预览视图
let previewView = UIImageView()
func drawPreview() {
previewView.hidden = false
previewView.alpha = 1.0
previewView.frame = CGRectMake(0,0,90,90)
previewView.center = CGPoint(x: screenWidth/2,y: screenHeight/2)
self.view.addSubview(previewView)
UIGraphicsBeginImageContext(previewView.frame.size)
var context = UIGraphicsGetCurrentContext()
CGContextSetLineCap(context, kCGLineCapRound)
CGContextSetLineWidth(context, brushWidth)
CGContextSetRGBStrokeColor(context, red, green, blue, opacity)
CGContextMoveToPoint(context, 45.0, 45.0)
CGContextAddLineToPoint(context, 45.0, 45.0)
CGContextStrokePath(context)
previewView.image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
}
动画显示
func animateOut(view1:UIView) {
UIView.animateWithDuration(0.2, animations: {
view1.alpha = 1
}, completion: {
(value: Bool) in
view1.hidden = true
})
}
答案 0 :(得分:0)
当用户使用滑块
完成后调用该方法解决了这个问题sizeDrawSlider.addTarget(self, action: "removePreview", forControlEvents: (.TouchUpInside | .TouchUpOutside))