2017-08-20 7 views
0

私は、ViewDidLoadで4つのサブビューを追加したスクロールビューを使用しています。今度はイベントでのアプリケーション使用中に、サブビューの1つを新しいビューに置き換えます。UIScrollViewのサブビューを見つけて置換する方法

サブビューにタグを追加しようとしていて、それを見つけて置き換えようとしていますが、タグが見つからないようです。また、私はコードが適切ではない上に確信して

let subViews = self.scrollView.subviews 
for subview in subViews{ 
    if subview.tag == 1000 { 
     let tempView = subview 
     tempView = newView 
    } 
} 

ビューを置換する正しい方法を見つけることができない、ここでのコードは、「もし」の内側に入ったことがないと私はデバッグ領域内のすべてのサブビューを見るとき、私はいけませんタグも参照してください。 viewDidLoad

 let storyboard = UIStoryboard(name: "Main", bundle: nil) 
     self.overLeftVc = storyboard.instantiateViewController(withIdentifier: "settingViewController") 
     self.leftVc = storyboard.instantiateViewController(withIdentifier: "giftCardListViewController") 
     self.middleVc = storyboard.instantiateViewController(withIdentifier: "redeemViewController") 
     self.rightVc = storyboard.instantiateViewController(withIdentifier: "homeViewController") 
     self.overRightVc = storyboard.instantiateViewController(withIdentifier: "ticketListViewController") 

     let isShowBotView = self.config.getValue("isSystemGenerated", fromStore: "settings") as! Bool 

     if isShowBotView == true { 
      self.nextOfOverRightVc = storyboard.instantiateViewController(withIdentifier: "chatViewController") 
     } 
     else { 
      self.nextOfOverRightVc = storyboard.instantiateViewController(withIdentifier: "tileMainViewController") 
     } 

     self.nextOfOverRightVc.view.tag = 1000 



      addChildViewController(overLeftVc) 
      addChildViewController(leftVc) 
      addChildViewController(middleVertScrollVc) 
      addChildViewController(nextOfOverRightVc) 
      // addChildViewController(tileMainRightVc) 

      scrollView.addSubview(overLeftVc.view) 
      scrollView.addSubview(leftVc.view) 
      scrollView.addSubview(middleVertScrollVc.view) 
      scrollView.addSubview(nextOfOverRightVc.view) 
+0

はどのようにあなたがサブビューにタグを与えるか、そのフレームで新しいサブビューを挿入しますか? –

+0

@ViktorSimkóview.tag = 1000 –

+0

スクロールビューを作成してサブビューを追加する場所で、 'viewDidLoad'でコードを共有することはできますか? –

答えて

0

から

コードは、変数にサブビューのフレームを保存することをサブビューを削除し、

for subview in subViews{ 
if subview.tag == 1000 { 
    self.frameOfViewToBeReplaced = subview.frame 
    subview.removeFromSuperView() 
    } 
} 
let newView = UIView(frame : self.frameOfViewToBeReplaced) 
関連する問題