2017-04-06 14 views
1

私はscrollViewに複数のボタンを配置しようとしていますが、バックグラウンドビューをスクロールするだけです。scrollViewに複数のボタンをプログラムで追加する方法

class HomeVC: UIViewController { 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     navigationItem.title = "Home" 

     let scrollView = UIScrollView() 

     let view = UIView() 
     scrollView.frame = self.view.bounds 
     self.view.backgroundColor = .green 
     scrollView.backgroundColor = .blue 
     scrollView.addSubview(view) 
     self.view.addSubview(scrollView) 
     scrollView.isPagingEnabled = true 
     scrollView.contentSize = CGSize(width: self.view.frame.size.width, height: self.view.frame.size.height * 3) 
     view.frame = CGRect(x: 0, y: self.view.frame.size.height, width: self.view.frame.size.width, height: self.view.frame.size.height) 
     view.backgroundColor = .yellow 

     attractivePlaceButtonSetup() 
     eatDrinkButtonSetup() 
     ShoppingButtonSetup() 
     festivalEventButtonSetup() 
     hotelGuestHouseButtonSetup() 
     travellerEssentialButtonSetup() 
     dealButtonSetup() 
     seeDoButtonSetup() 
    } 

私はまた、このような方法を試みるが、それだけでスクロールボタンを{

 let button = UIButton() 
     button.frame = CGRect(x: 5, y: 225, width: self.view.frame.size.width - 10, height: 150) 
     button.setTitle("Eat & Drink", for: .normal) 
     button.setBackgroundImage(#imageLiteral(resourceName: "imageName"), for: .normal) 
     button.titleEdgeInsets = UIEdgeInsets(top: -120, left: -200, bottom: 0, right: 0) 
      button.addTarget(self, action: #selector(targetEatDrink), for: .touchUpInside) 

     view.addSubview(button) 

    } 

} 

)FUNC eatDrinkBut​​tonSetup(ボタンフレーム ために、このコードを書きました。

scrollView.addSubview(attractivePlaceButtonSetup) 
self.view.addSubview(scrollView) 
+0

なぜあなたはself.view.frame.size.heightするビューフレームyを設定していますか? in line view.frame = CGRect(x:0、y:self.view.frame.size.height、width:self.view.frame.size.width、height:self.view.frame.size.height) –

+0

@ JasmeetKaur Kaur申し訳ありませんが、私はそれについては考えていません –

+0

あなたのButtonSetup()関数は何をしていますか?少なくとも1つのコードを表示することはできますか? – DonMag

答えて

1
//Try this... 
    //Background Scroll Creation 

      var stickersScrollViewCount = 0 
      func stickersScrollContents() { 

       var xCoord: CGFloat = 5 
       let yCoord: CGFloat = 5 
       let buttonWidth:CGFloat = 45.0 
       let buttonHeight: CGFloat = 45.0 
       let gapBetweenButtons: CGFloat = 5 

       for i in 0..<stickersImageArray.count{ 
        stickersScrollViewCount = i 
        // Button properties 
        let filterButton = UIButton(type: .custom) 
        filterButton.frame = CGRect(x: xCoord, y: yCoord, width: buttonWidth, height: buttonHeight) 
        filterButton.tag = stickersScrollViewCount 
        filterButton.backgroundColor = UIColor.clear 
        filterButton.setTitleColor(UIColor.white, for: .normal) 
        filterButton.titleLabel?.adjustsFontSizeToFitWidth = true 
        filterButton.showsTouchWhenHighlighted = true 
        let myimage = UIImage(named: stickersImageArray[stickersScrollViewCount]) 
        filterButton.setImage(myimage, for: .normal) 
        filterButton.addTarget(self, action:#selector(StickersActionTapped), for: .touchUpInside) 
        filterButton.layer.cornerRadius = 5 
        filterButton.clipsToBounds = true 
        xCoord += buttonWidth + gapBetweenButtons 
        bgScrollView.addSubview(filterButton) 

       } 
       bgScrollView.contentSize = CGSize(width: buttonWidth * CGFloat(stickersScrollViewCount+2), height: yCoord) 

      } 

//Call the function where ever you want viewDidLoad() or on Button Click!! 

//Hope this helps!!! 
関連する問題