2014-10-11 2 views
0

iOS8 앱에있는 이미지 위에 흐림 효과를 표시하고 싶습니다. 이 기본 아이디어에서 if/else 구현이 잘못되었다는 것을 알고 있지만, 새로운 것이므로 올바르게 수행하는 방법을 알지 못합니다. 모든 추천은 기꺼이 받아 들여질 것입니다.신속한 iOS8에서 UIBlurEffect 전환

흐리게 표시된 이미지 위에서 텍스트를 전환하고 싶습니다.

내보기 컨트롤러

var cont: Int = 0 

이 글로벌 상수를 가지고 그리고 여기 내 이미지의 상단에 버튼에 관한 @IBAction입니다했습니다.

@IBAction func moreInfo(){ 

    /* First, create the blur effect with the "Dark" style. 
    All the styles are defined in UIBlurEffectStyle */ 
    let blurEffect = UIBlurEffect(style: .Dark) 

    /* Then create the effect view, using the blur effect that 
    we just created. The effect is of type UIVisualEffect */ 
    let blurView = UIVisualEffectView(effect: blurEffect) 
    blurView.frame.size = CGSize(width: 200, height: 250) 
    blurView.center = CGPoint(x: 160, y: 250) 


    /* Toggle blur*/ 
    if (cont == 0){ 

     view.addSubview(blurView) 
    } else { 

     /* view.removeFromSuperview(blurView)??? */ //Here should be a way to remove the blur 


    } 


} 

답변

1

removeFromSuperview()은 이전 blurView이 필요합니다.

코드와 가장 일치하는 대답은 savedBlurView과 같은 코드를 추가하여 호출간에 흐림보기를 저장합니다.

var cont: Int = 0 
var savedBlurView: UIVisualEffectView? 

@IBAction func moreInfo() { 
    /* First, create the blur effect with the "Dark" style. 
    All the styles are defined in UIBlurEffectStyle */ 
    let blurEffect = UIBlurEffect(style: .Dark) 

    /* Then create the effect view, using the blur effect that 
    we just created. The effect is of type UIVisualEffect */ 
    let blurView = UIVisualEffectView(effect: blurEffect) 
    blurView.frame.size = CGSize(width: 200, height: 250) 
    blurView.center = CGPoint(x: 160, y: 250) 

    if (cont == 0) { 
     view.addSubview(blurView) 
     savedBlurView = blurView 
    } else { 
     savedBlurView?.removeFromSuperview() 
     savedBlurView = nil 
    } 
} 

이 논리는 약간 거칠고 정리할 수 있습니다.

var isBlurred: Bool = false 
var savedBlurView: UIVisualEffectView? 

@IBAction func moreInfo() { 
    if !isBlurred { 
     let blurEffect = UIBlurEffect(style: .Dark) 
     let blurView = UIVisualEffectView(effect: blurEffect) 
     blurView.frame.size = CGSize(width: 200, height: 250) 
     blurView.center = CGPoint(x: 160, y: 250) 

     view.addSubview(blurView) 
     savedBlurView = blurView 
     isBlurred = true 
    } else { 
     savedBlurView?.removeFromSuperview() 
     savedBlurView = nil 
     isBlurred = false 
    } 
} 

여기에 내가 필요할 때 나는 흐리게 할 필요가, 난 단지 흐림 효과를 만들 수 있습니다 테스트 할 부울을 사용하고 난 상태를 변경하고있어 지점에서 부울을 업데이트합니다.

+0

감사합니다. 신속하게 나를 위해 btw 추천 할 수있는 좋은 튜토리얼 있나요? 레일 API를 사용하여 소셜/전자 상거래 앱을 만들고 JSON 요청의 검색어를 활성화하는 탭에 문제가 있음을 확인하고 싶습니다. –