【问题标题】:Image in ScrollView not being scrollableScrollView 中的图像不可滚动
【发布时间】:2017-12-04 07:50:36
【问题描述】:

我被要求在一个项目中提供快速帮助,并在短时间内使用 xcode 工作,我以前都没有使用过。

任务是让图片“可缩放”。经过一番研究,我发现在图像顶部放置一个 UIScrollView 就足够了。现在,由于图像视图已经存在并且集成在代码中,我不敢轻视,有一些限制,什么没有。 我不想用一个新的图像视图重新开始这个过程,然后再尝试将它连接到代码中。主要是因为图像视图位于表格视图内的表格单元格内。

我所做的是:

在故事板上

  • 将图像视图放在情节提要的视图中。
  • 将滚动视图的委托分配给表格单元格。
  • 我不太清楚如何约束这些,所以我主要使用“添加缺失的约束”。

在 TableViewCell 的代码中

  • 继承了 UIScrollViewDelegate
  • 用@IBOutlet weak var scrollView 创建了一个新的var:UIScrollView!
  • 由于我在控制器中,我无法覆盖 viewDidLoad 函数,因此我实现了该函数并将 minimum 和 maximumZoomScale 设置为一些值。
  • 实现了一个返回 UIImageView 的 viewForZooming 函数

我想通了如何使用 ImageView 的约束和属性来调整大小和内容,但是无论我尝试做什么,我都无法让“缩放”工作。

ImageView 是否有任何属性会搞砸,我应该检查什么?

【问题讨论】:

  • 我建议您构建一个带有 ImageView 的自定义 ScrollView。有了它,您可以使用 init/layoutSubviews 方法来配置滚动视图,以便它可以正确缩放分配的图像(无像素派对等)
  • 由于我是新手,你的意思是按照我已经采取的步骤,还是我应该使用其他方法?
  • 据我了解,您在问题中解释的内容只是将 scollView 放在图像视图上方。我的意思是,你做一个类,例如“ImageScrollView”是UIScrollView, UIScrollViewDelegate 的子类,它有一个UIImageView 作为变量。 AFAIK 还有一个 Apple 教程,我会查一下。
  • 在 PhotoScroller 项目中寻找 ImageScrollView.m。它在 obj-c 中,但它显示了要做什么。
  • 谢谢,奇迹终于让它工作了! :-)

标签: swift xcode uiscrollview uiimageview uistoryboard


【解决方案1】:

在阅读并试图弄清楚之后,最终使它起作用的是:

  • ScrollViewInterface Builder 中成为 ImageView 的父级
  • 当提示约束错误时,我主要通过添加缺少的约束神奇地使约束适应 ScrollView 与周围的一切对齐。
  • 右键单击 ScrollView,然后为委托,单击 + 符号并将其拖到 UITableViewCell。
  • 我也为 Reference Outlet 做了同样的事情
  • UITableViewCell 的代码是这样的:

    class ClothesItemTableViewCell: UITableViewCell, UIScrollViewDelegate {
      @IBOutlet weak var scrollView: UIScrollView!
      var theImage: UIImage? {
         set {
            clothinhImageView.image = newValue
        } get {
           return clothingImageView.image
        }
      }
    
      func viewForZooming(in scrollView: UIScrollView) -> UIView? {
         return clothingImageView
      }
    }
    

可能不是很清楚,我找不到完成这项工作的确切文章。但是有很多人试图以不同的方式解决这个问题,并且不知何故这奏效了。希望它可以帮助别人!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多