【问题标题】:UIscrollview not scrolling swiftUIscrollview 不能快速滚动
【发布时间】:2016-03-27 00:22:06
【问题描述】:

我有以下问题,我在view2上面创建了view1

然后将scrollview添加到view1,scrollview包含一些代码添加的ui元素

我的滚动视图不滚动的问题,它的内容出现在视图 2 上方,而我需要它在它后面并能够滚动它

截图如下

我添加 UI 元素的代码如下

        mainScrollView = UIScrollView(frame: CGRectMake(0, 0, self.view.frame.size.width, 1000))

        let awesomeView2: UIImageView = UIImageView(frame: CGRectMake(0, 0, self.view.frame.size.width, 180))
        awesomeView2.load(selectedItem.listingImage);

        mainScrollView.addSubview(awesomeView2);

        let title: UILabel = UILabel(frame: CGRectMake(0, 180, self.view.frame.size.width, 44));
        title.text = selectedItem.listingTitle;
        title.textAlignment = .Right;

        mainScrollView.addSubview(title);

        let catName: UILabel = UILabel(frame: CGRectMake(200, 224, 120, 21));
        catName.text = selectedItem.catName
        catName.textAlignment = .Right;

        mainScrollView.addSubview(catName);

        let datePublished: UILabel = UILabel(frame: CGRectMake(0, 224, 200, 21));
        datePublished.text = selectedItem.dateCreated
        datePublished.textAlignment = .Left

        mainScrollView.addSubview(datePublished);

        let grayColor = UIColor(red: 1, green: 165/255, blue: 0, alpha: 1)
        let iconsView: UIView = UIView(frame: CGRectMake(0, 250, self.view.frame.size.width, 32));
        iconsView.backgroundColor = grayColor
        mainScrollView.addSubview(iconsView);

        if (KhawaterDataManager.instance.banners.itemBanners.count > 0) {

            let awesomeView3: UIImageView = UIImageView(frame: CGRectMake(0, 282, self.view.frame.size.width, 50))
            awesomeView3.load(KhawaterDataManager.instance.banners.itemBanners[0].image);
            mainScrollView.addSubview(awesomeView3);
        }


        // test

        let catName1: UILabel = UILabel(frame: CGRectMake(0, 335, self.view.frame.size.width, 50));
        catName1.text = selectedItem.catName

        mainScrollView.addSubview(catName1);

        let catName2: UILabel = UILabel(frame: CGRectMake(0, 385, self.view.frame.size.width, 50));
        catName2.text = selectedItem.catName
        mainScrollView.addSubview(catName2);


        let catName3: UILabel = UILabel(frame: CGRectMake(0, 435, self.view.frame.size.width, 50));
        catName3.text = selectedItem.catName
        mainScrollView.addSubview(catName3);

        mainScrollView.contentSize = CGSizeMake(self.view.frame.size.width, 1000)
        mainScrollView.scrollEnabled = true;

        mainView.addSubview(mainScrollView);

请任何人告诉我这里有什么问题?

【问题讨论】:

    标签: ios swift uiview uiscrollview


    【解决方案1】:

    请检查这一行

    mainScrollView.contentSize = CGSizeMake(self.view.frame.size.width, 1000)

    为什么内容高度为 1000。这太多了。这应该是

    mainScrollView.contentSize = CGSizeMake(self.view.frame.size.width, 435+50)

    另一个问题是为什么将您的 scollView 设置为 mainView 而不是 self.view 的子视图。

    【讨论】:

      【解决方案2】:

      您可能还想添加所有子视图(awesomeView2、title、catName 等) 到容器视图,然后将容器视图添加到滚动视图。 类似:

      let containerView: UIView = {
          let view = UIView()
          view.addSubview(self.awesomeView2)
          view.addSubview(self.title)
          view.addSubview(self.catName)
          view.addSubview(self.datePublished)
          return view
      }()
      
      mainScrollView.addSubview(containerView)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多