UIscrollview 不能快速滚动
Posted
技术标签:
【中文标题】UIscrollview 不能快速滚动【英文标题】:UIscrollview not scrolling swift 【发布时间】: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);
请任何人告诉我这里有什么问题?
【问题讨论】:
【参考方案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)
【讨论】:
以上是关于UIscrollview 不能快速滚动的主要内容,如果未能解决你的问题,请参考以下文章
自动滚动 UIScrollView 以适应原生 iOS Mail.app 中的内容
如何在 ios 中为 UIScrollView 设置对齐方式