2016-11-24 11 views
0

カスタムナビゲーションバーを作成しました。これをviewwillappearメソッドに追加しています。これは、ビューコントローラに戻ったときに読み込まれるまでに時間がかかります。viewwillappearでカスタムナビゲーションバーを追加するとナビゲーションが遅くなりますか?

func addViewToNav() 
    { 
    myView = UIView(frame: CGRect(x: 0, y: 20, width: (self.navigationController?.navigationBar.frame.size.width)!-40, height: (self.navigationController?.navigationBar.frame.size.height)!)) 

    imageView.frame = CGRect(x: 5, y: (myView?.frame.size.height)!/2-14, width: 28, height: 28) 
    let image = UIImage(named: "download") 
    imageView.contentMode=UIViewContentMode.scaleAspectFill 
    imageView.image=image 
    imageView.layer.borderColor = UIColor.white.cgColor 
    imageView.layer.cornerRadius = imageView.frame.size.width/2 
    imageView.clipsToBounds = true 
    imageView.backgroundColor=UIColor.yellow 
    label = UILabel(frame: CGRect(x: imageView.frame.size.width+15, y: 0, width: 150, height: (myView?.frame.size.height)!)) 
    label?.text="Label" 
    label?.textColor=UIColor.white 
    myView?.addSubview(imageView) 
    myView?.addSubview(label!) 
    self.navigationController?.view.addSubview(myView!) 
    //add tap gesturte on imageview & label 
    let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.tapBlurButton(_:))) 
    myView?.isUserInteractionEnabled=true 
    tapGesture.numberOfTapsRequired=1 
    myView?.addGestureRecognizer(tapGesture) 
    } 

これは非常に遅いので、どうすれば速くすることができますか教えてください。

+0

画像サイズが大きすぎる可能性があります –

答えて

0

コントローラが画面に表示されるたびに、カスタムビューを作成するコードが呼び出され、サブビューとして追加してからジェスチャレコグナイザを追加するたびに実行されるため、時間がかかります。あなたが作成しviewWillAppear

  • の代わりにviewDidLoadにカスタムナビゲーションバーを追加するために、プログラム的にそれを行うコードを追加したい場合は

    1. 処理時間が低下する可能性があります2つの方法があります。

      storyboard自体にカスタムナビゲーションバーを追加し、コントローラーにコンセント接続を作成します。

  • 関連する問題