在UIScrollView iOS中只有可见最后添加的视图

时间:2019-01-30 11:50:42

标签: ios swift

我遇到了scrollView问题。我已在故事板中将ScrollView添加为

  

查看     -主视图      -ScrollView        -accountSavingSubView

现在我正尝试在accountSavingSubView中添加视图,如下所示

    //MARK:- Create and add wallets on the UI
    private func createAndAddWallets()
    {
        var yPosition : CGFloat = 0.0
        //1. Create left hand side wallets with help of keys

        for key in dictData.keys
        {
            let walletView:Wallet = Bundle.main.loadNibNamed("Wallet", owner: self, options: nil)?.first as! Wallet
            walletView.translatesAutoresizingMaskIntoConstraints = false
            walletView.frame = CGRect(x: 0.0, y: yPosition, width: accountSavingSubView.frame.width, height: accountSavingSubView.frame.height)
            walletView.accountNameLabel.text = key
            accountSavingSubView.addSubview(walletView)
            yPosition += walletView.frame.maxY
            walletView.isUserInteractionEnabled = true
            print("walletView frame is :\(walletView.frame)")
        }
        //set continer scroll content size
            self.contanerScrollView.contentSize = CGSize(width: self.accountSavingSubView.frame.width, height: CGFloat(80.0/320.0)*UIScreen.main.bounds.width*CGFloat(self.dictData.keys.count))
}

dictData是([[String:String])的字典。

但是在我看来,我只能看到(x = 0,y = 0)上添加了最后一个视图。 ScrollView的内容大小正确,并且我可以滚动浏览而没有其他视图(第一位(x:0,y:0)除外)。

在添加视图时,请让我知道我在代码中在做什么错。

1 个答案:

答案 0 :(得分:0)

您需要对此进行评论

walletView.translatesAutoresizingMaskIntoConstraints = false

,因为它仅与设置约束一起使用,并验证此处提供的帧值不为0

walletView.frame = CGRect(x: 0.0, y: yPosition, width: accountSavingSubView.frame.width, height: accountSavingSubView.frame.height)

您还可以对其进行注释,因为如果您将其设置为自由大小,则将在xib中对其进行设置