2015-04-28 2 views
0

Я показываю subview, который содержит подвью, изображение и сообщение. Мне нужно удалить это подвью после определенной продолжительности/времени (5 секунд) в быстром режиме. Код для подсмотров выглядит следующим образом:Удалить subview после определенной продолжительности

 var HideView = UIView (frame: CGRectMake(0 , 0, 320, 480)); 
    HideView.backgroundColor = UIColor(red:0.0, green:0.0, blue:0.0, alpha:0.6); 
    var ErrorView = UIView (frame: CGRectMake(0, 40, 320, 70)); 
    ErrorView.backgroundColor = UIColor(red:0.8, green:0.376, blue:0.094, alpha:1.0); 
    ErrorView.clipsToBounds = true; 
    ErrorView.layer.shouldRasterize = true 
    HideView.addSubview(ErrorView) 

    var ErrorImageView = UIImageView(frame: CGRectMake(5, 5, 30, 30)); 
    var ErrorImage = UIImage(named: "error_icon_white.pdf"); 
    ErrorImageView.image = ErrorImage; 
    ErrorView.addSubview(ErrorImageView) 

    var ErrorLabel = UILabel (frame: CGRectMake(50, 0, 270, 70)); 
    ErrorLabel.backgroundColor = UIColor.clearColor(); 
    ErrorLabel.textColor = UIColor.whiteColor() 
    ErrorLabel.font = UIFont(name: "Gotham", size: 1) 
    ErrorLabel.numberOfLines = 3 
    var errmsg = "Hello world" 
    ErrorLabel.text = errmsg; 
    ErrorView.addSubview(ErrorLabel) 
    self.view.addSubview(HideView); 

Могу ли я достичь этого требования? Если да, то как? Спасибо заранее.

+1

Вы можете использовать функцию dispatch_after или как описано здесь: http://stackoverflow.com/a/24318861/2592349 –

+1

Возможный дубликат [отправка \ _after - GCD в swift?] (Http://stackoverflow.com/ вопросы/24034544/отправка-после-gcd-in-swift) –

ответ

0

После добавления подвида, добавить таймер на огнь после заданного промежутка времени (5 секунд)

var timer = NSTimer.scheduledTimerWithTimeInterval(NSTimeInterval(5.0), target: self, selector: "timeExpired", userInfo: nil, repeats: false) 

Затем выполнить любые действия, которые вы хотите в функции «timeExpired»:

func timeExpired() { 
     println("time expired") 
     // yoursubview.removeFromSuperview() 
    } 
+0

Извините lstvan, it d oes не работает для меня. 2015-04-28 17: 11: 02.755 testtool [6243: 203754] - [testtool.ViewController timeExpired]: непризнанный селектор отправлен в экземпляр 0x79f6a330 2015-04-28 17: 11: 02.760 testtool [6243: 203754] *** Завершение приложения из-за неперехваченного исключения «NSInvalidArgumentException», причина: '- [testtool.ViewController timeExpired]: непризнанный селектор, отправленный в экземпляр 0x79f6a330' –

+0

@Amit Raj - похоже, что вы не добавляли функцию timeExpired к вашему коду. – Istvan

+0

Я добавил, что функция –

Смежные вопросы