ios - 使用 midX 时,scrollView 图像不在中心?

标签 ios swift swift3

在初始化 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/

相关文章:

ios - JSONModel 中的 NSMutableDictionary - EXC_BAD_ACCESS KERN_INVALID_ADDRESS

swift - 如何在 SKScene 中呈现 View Controller ?

swift - Easy SpriteKit 接触检测(太空射击游戏)无法正常工作

ios - UICollectionView 一些单元格既不是可见项也不是出队单元格

swift - 是否有一些解决方法可以在不知道定义的元素类型是什么的情况下转换为通用基类?

arrays - 如何从 Swift 3 中的结构数组生成 JSON?

ios - 无法快速符合 objective-c 协议(protocol)

javascript - 使用插件访问从 phonegap Cordova 中的外部 URL 加载 Webste

ios - 从加载程序复制位图数据

ios - 如何在 RxSwift 中为 Binder 支持 distinctUntilChanged?