Swift UIScrollView即使只有一页也可以水平滚动
我的Xcode项目中的UIScrollView有问题。我用它来显示几个图片,但即使只有一页,它仍然水平滚动。可能是因为Swift UIScrollView即使只有一页也可以水平滚动,swift,xcode,uiscrollview,Swift,Xcode,Uiscrollview,我的Xcode项目中的UIScrollView有问题。我用它来显示几个图片,但即使只有一页,它仍然水平滚动。可能是因为setupPhotosInScrollView()或scrollviewdidcroll的缘故。我不知道如何解决这个问题。看起来还可以,但仍然会出现此错误。请帮忙 这是我的密码: override func viewDidLoad() { super.viewDidLoad() // Ad Title eTitleLabel.text = "\(eObj
setupPhotosInScrollView()
或scrollviewdidcroll
的缘故。我不知道如何解决这个问题。看起来还可以,但仍然会出现此错误。请帮忙
这是我的密码:
override func viewDidLoad() {
super.viewDidLoad()
// Ad Title
eTitleLabel.text = "\(eObj[EVENTS_TITLE]!)"
// Get photos
let imageFile = eObj[EVENTS_IMAGE1] as? PFFile
imageFile?.getDataInBackground(block: { (data, error) in
if error == nil { if let imageData = data {
self.photosArray.append(UIImage(data: imageData)!)
self.setupPhotosInScrollView()
print("PHOTO 1")
}}})
DispatchQueue.main.async {
if self.eObj[EVENTS_IMAGE2] != nil {
self.pageControl.numberOfPages = 2
let imageFile = self.eObj[EVENTS_IMAGE2] as? PFFile
imageFile?.getDataInBackground(block: { (data, error) in
if error == nil { if let imageData = data {
self.photosArray.append(UIImage(data: imageData)!)
self.setupPhotosInScrollView()
print("PHOTO 2")
}}})
}
// ------------------------------------------------
// MARK: - SETUP PHOTOS IN SCROLLVIEW
// ------------------------------------------------
@objc func setupPhotosInScrollView() {
var X:CGFloat = 0
let Y:CGFloat = 0
let W:CGFloat = view.frame.size.width
let H:CGFloat = view.frame.size.height
let G:CGFloat = 0
var counter = 0
// Loop to create ImageViews
for i in 0..<photosArray.count {
counter = i
// Create a ImageView
let aImg = UIImageView(frame: CGRect(x: X, y: Y, width: W, height: H))
aImg.tag = i
aImg.contentMode = .scaleAspectFit
aImg.image = photosArray[i]
// Add ImageViews based on X
X += W + G
containerScrollView.addSubview(aImg)
} // ./ FOR loop
// Place Buttons into a ScrollView
containerScrollView.contentSize = CGSize(width: W * CGFloat(counter+2), height: H)
}
// ------------------------------------------------
// MARK: - CHANGE PAGE CONTROL PAGES ON SCROLL
// ------------------------------------------------
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let pageWidth = containerScrollView.frame.size.width
let page = Int(floor((containerScrollView.contentOffset.x * 2 + pageWidth) / (pageWidth * 2)))
pageControl.currentPage = page
}
override func viewDidLoad(){
super.viewDidLoad()
//广告标题
eTitleLabel.text=“\(eObj[事件标题]!)
//拍照
将imageFile=eObj[EVENTS_IMAGE1]设为?PFFile
imageFile?.getDataInBackground(块:{(数据,错误)在
if error==nil{if let imageData=data{
self.photosArray.append(UIImage(数据:imageData)!)
self.setupPhotosInScrollView()
打印(“照片1”)
}}})
DispatchQueue.main.async{
如果self.eObj[EVENTS_IMAGE2]!=nil{
self.pageControl.numberOfPages=2
将imageFile=self.eObj[EVENTS_IMAGE2]设为?PFFile
imageFile?.getDataInBackground(块:{(数据,错误)在
if error==nil{if let imageData=data{
self.photosArray.append(UIImage(数据:imageData)!)
self.setupPhotosInScrollView()
打印(“照片2”)
}}})
}
// ------------------------------------------------
//标记:-在SCROLLVIEW中设置照片
// ------------------------------------------------
@objc func设置PhotosinScrollView(){
变量X:CGFloat=0
设Y:CGFloat=0
设W:CGFloat=view.frame.size.width
设H:CGFloat=view.frame.size.height
设G:CGFloat=0
变量计数器=0
//循环以创建ImageView
对于0中的i..替换
containerScrollView.contentSize = CGSize(width: W * CGFloat(counter+2), height: H)
与
当您为contentSize设置宽度时,该宽度不等于添加的照片数
containerScrollView.contentSize = CGSize(width: W * CGFloat(photosArray.count), height: H)