如果未更新滑块值,请及时进行视图淡出

时间:2015-05-31 07:31:26

标签: swift animation fadeout

我正在使用绘图应用程序,当用户选择画笔大小/颜色/不透明度时,我会在屏幕中央显示画笔的小预览。如果值没有更新,我想在几秒后淡出。当我尝试实现类似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
        })
    }

1 个答案:

答案 0 :(得分:0)

当用户使用滑块

完成后调用该方法解决了这个问题
sizeDrawSlider.addTarget(self, action: "removePreview", forControlEvents: (.TouchUpInside | .TouchUpOutside))