在初始化 newX 变量时,我在代码中使用了两条语句,我相信它们应该给出相同的结果,但一条语句没有给出,它们是:
( scrollView.frame.size.width / 2 ) - 75
还有
scrollView.frame.midX - 75
这是我的代码,查找中间的注释:
class ViewController: UIViewController {
@IBOutlet weak var scrollView: UIScrollView!
var images = [UIImageView]()
var contentWidth: CGFloat = 0.0
override func viewDidAppear(_ animated: Bool) {
for i in 0...2 {
let image = UIImage(named: "icon\(i).png")
let imageView = UIImageView(image: image)
// Here is the problem
let newX = (scrollView.frame.size.width / 2 + scrollView.frame.size.width * CGFloat(i)) - 75
let newY = scrollView.frame.midY - 75
imageView.frame = CGRect(x: newX, y: newY, width: 150, height: 150)
scrollView.addSubview(imageView)
contentWidth += scrollView.frame.size.width
}
scrollView.contentSize = CGSize(width: contentWidth, height: view.frame.size.height)
scrollView.clipsToBounds = false
scrollView.backgroundColor = UIColor.purple
}}
第一个图像完美地居中,但是当我用第二个图像替换它时,它并没有使图像居中,如图所示 Code Representation 。为什么?
最佳答案
不同之处在于 midX 还考虑了 ScrollView 原点的位置,因此 midX 将是 ScrollView 宽度的一半 + ScrollView 的 X 原点。 (类似于minX并不总是0)
另一方面,宽度是 ScrollView 的绝对宽度。
关于ios - 使用 midX 时,scrollView 图像不在中心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44402959/