gpt4 book ai didi

ios - 无法使用 Parse 在 ScrollView 中缩放 UIImage

转载 作者:可可西里 更新时间:2023-11-01 01:08:09 24 4
gpt4 key购买 nike

谁可以帮助缩放 ScrollView 。使用 Parse 获取图片,但无法缩放。通过所有可能的功能都不起作用 - aImg 这是(UIImage)到 setupPhotosInScrollView 功能,任何人都可以帮忙吗?尝试过框架,但没有任何帮助


代码

class AdPhotos: UIViewController, UIScrollViewDelegate {

/*--- VIEWS ---*/
@IBOutlet weak var containerScrollView: UIScrollView!


/*--- VARIABLES ---*/
var adObj = PFObject(className: ADS_CLASS_NAME)
var photosArray = [UIImage]()



// ------------------------------------------------
// MARK: - VIEW DID LOAD
// ------------------------------------------------
override func viewDidLoad() {
super.viewDidLoad()

// Ad Title
adTitleLabel.text = "\(adObj[ADS_TITLE]!)"

// Get photos
let imageFile = adObj[ADS_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.adObj[ADS_IMAGE2] != nil {
self.pageControl.numberOfPages = 2
let imageFile = self.adObj[ADS_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")
}}})
}
if self.adObj[ADS_IMAGE3] != nil {
self.pageControl.numberOfPages = 3
let imageFile = self.adObj[ADS_IMAGE3] 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 3")
}}})
}
if self.adObj[ADS_IMAGE4] != nil {
self.pageControl.numberOfPages = 4
let imageFile = self.adObj[ADS_IMAGE4] 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 4")
}}})
}
if self.adObj[ADS_IMAGE5] != nil {
self.pageControl.numberOfPages = 5
let imageFile = self.adObj[ADS_IMAGE5] 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 5")
}}})
}

}
}
// ------------------------------------------------
// 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
}
}

最佳答案

我认为您不需要 ScrollView 和管理分页。您需要 CollectionView,只需启用分页选项 From story-bored。

  1. 在您的 ViewController 中拖动 Collection View。启用分页选项来自属性选择器。

  2. 将 CollectionView(leading, trailing, top, bottom) 分配给 View(前导, 尾随, 顶部, 底部 )

  3. 将 CollectionView 单元格拖到 CollectionView 中。调整单元格大小以填充整个 CollectionView

  4. 将 Scrollview 添加到 CollectionView 单元格中并添加 ScrollView(leading,trailing, top, bottom) == CollectionView cell(leading,尾部, 顶部, 底部)

  5. 在Scrollview中添加imageView并添加imageView(leading,trailing, top, bottom) == Scrollview (leading,尾随顶部底部)以及与 CollectionView 单元格相同的宽度和高度。

  6. 为 CollectionView 实现 DataSourceDelegate 方法。

为了缩放,将以下代码添加到您的 CollectionView 单元格

import UIKit

class CustomeCellCollectionViewCell: UICollectionViewCell , UIScrollViewDelegate {

@IBOutlet var imageView : UIImageView!
@IBOutlet var scrollView : UIScrollView!

override func awakeFromNib() {
super.awakeFromNib()

scrollView.delegate = self
scrollView.minimumZoomScale = 1.0
scrollView.maximumZoomScale = 6.0
}

func viewForZooming(in scrollView: UIScrollView) -> UIView? {

return feedsImageView
}
}

enter image description here

关于ios - 无法使用 Parse 在 ScrollView 中缩放 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53073639/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com