代码之家  ›  专栏  ›  技术社区  ›  Chris

基于屏幕大小转换/缩放UIImageViews

  •  0
  • Chris  · 技术社区  · 7 年前

    uiview 根据设备屏幕大小动态调整大小的。

    uiview公司 ,我以编程方式插入 uiimageview subviews 然后我会拯救 CGRect CGPoint ,和 CGAffineTransform

    然后我可以获取这些数据并重新上传并查看 我之前插入的。

    如果我有相同的设备屏幕大小,一切都很好,但我的问题是尝试将这些保存的数据点调整为其他屏幕大小,这样无论什么情况,它在光学上看起来都很好 iOS 你可能正在使用的设备。

    我试着将屏幕的原始高度和宽度与其他数据点一起存储,这样我就可以,例如,找到宽度与原始值之间的变化,从而调整原始的x坐标来移动更多或更少的点。

    let widthPointChange = new.bounds.width - saved.originalSuperviewWidth
    let heightPointChange = new.bounds.height - saved.originalSuperviewHeight
     newUIImageView.center = CGPoint(x: saved.x + widthPointChange, y: saved.y + heightPointChange)
    

    有没有更好的方法可以根据不同的屏幕尺寸进行转换/缩放,但这与原始屏幕保持一致?例如,我想知道Instagram是如何保存用户生成的故事,并在不同的设备尺寸上一致而成比例地显示出来的。。

    0 回复  |  直到 7 年前
        1
  •  0
  •   Abjox    7 年前

    试试这个方法!

    let view = UIView()
    let image = UIImageView()
    
    image.translatesAutoresizingMaskIntoConstraints = false
    view.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
    view.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
    view.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
    view.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
    
    view.addSubview(image)