【问题标题】:Use of different mode like "Scale To Fill","Aspect Fit",""Aspect Fill" to handell UIImageView inside UITableViewCell使用不同的模式,如“Scale To Fill”、“Aspect Fit”、“Aspect Fill”来处理 UITableViewCell 内的 UIImageView
【发布时间】:2015-07-29 20:35:55
【问题描述】:

我在UITableViewCell 中使用了UIImageView,它将填充contentView。我尝试了不同的模式,如“缩放填充”、“Aspect Fit”、“Aspect Fill”来处理UITableViewCell 中的UIImageView。UIImageView UITableViewCell 内部在 Aspect Fill 中超出屏幕。我为图像设置了约束,如下所示

它可以正常工作,如下所示

但是当图像尺寸太大时,它会显示如下问题 超出单元格边界

我使用Aspect Fill,如下图所示

当我使用Aspect Fit 时,我遇到了这个问题

当我使用Scale To Fill 时,我遇到了这个问题

Aspect FitScale To Fill 中,我的左右边距为 如上所示

下面的链接没有解决我的问题,所以它不重复

UIImageView inside UITableViewCell does not get updated

Resizing UIImageView inside a UITableViewCell

iOS 8 - AutoLayout issue - UIImageView inside UITableViewCell ignoring width constraints

【问题讨论】:

  • 您是否尝试过设置 UIImageView 的不同模式,例如“Scale To Fill”、“Aspect Fit”、“Aspect Fill”等?
  • 是的,正确!!! @iPhone
  • 我用过方面填充
  • 请尝试其他 UIImageView 模式!!
  • 您需要为 imageview、cell 的 contentview 和 cell 启用 clips to bounds 属性。我看到在添加约束时,您使用边距设置它。因此,删除旧约束并再次使用禁用约束到边距的新约束。如果有帮助,请告诉我。 :)

标签: ios objective-c uitableview uiimageview autolayout


【解决方案1】:

您的表格视图单元格上有一个名为Clip subviews 的选项。检查它是否已激活,它应该是好的。

【讨论】:

    【解决方案2】:

    根据您的描述,您的约束都设置正确。

    Aspect Fill 将通过保持图像的纵横比来绘制整个 imageView 内部。如果图像大于 imageView 的尺寸,则图像溢出。在这种情况下,您需要在 imageView 的属性检查器中激活“剪辑子视图”选项。

    在 storyboard/xib 中转到单元格的 imageView 属性检查器。在“绘图”部分下,选择“剪辑子视图”为真。

    这将使 superView 剪辑它的子视图。在您的情况下,单元格的 contentView 是 superView,而 imageView 是子视图。

    【讨论】:

      【解决方案3】:

      您需要为 imageview、cell 的 contentview 和 cell 启用 clip subviews 属性。还有一件事,我看到当你添加约束时,你添加了带边距的约束。所以,删除旧约束并再次添加新约束,禁用对边距的约束。

      如果有帮助,请告诉我。 :)

      【讨论】:

      • 转到你的单元格的xib,然后选择imageview,然后按照stackoverflow.com/questions/6715341/…
      • 如果我的回答对你有帮助,请标记为正确,以便其他人知道该遵循哪个答案.. :)
      【解决方案4】:

      我猜单元格中没有问题,它在 Tableview 中。
      设置约束到您使用此单元格的 Tableview
      它会起作用的。

      【讨论】:

      • 不是细胞的问题
      • 好的,设置 Aspect Fill 时会发生什么?你没有表现出来。并且剪辑子视图位于该图像视图的属性检查器中
      • 我的问题是关于Aspect Fill。检查问题老兄
      • 哈哈,伙计。这是它应该工作的方式。在纵横比填充中,它将尝试保持图像的纵横比(宽度和高度)和按比例填充(它将缩放它获得的任何图像大小)。但是尝试剪辑子视图。
      • 好吧伙计.. 我会试试的
      【解决方案5】:

      为 UIImageView 设置宽度和高度约束

      移除其他约束并将以下约束设置为 imageview...!

      UIImageView --> Editor --> Pin --> Width
      
      UIImageView --> Editor --> Pin --> Height
      

      参考

      https://developer.apple.com/library/ios/recipes/xcode_help-IB_auto_layout/chapters/pin-constraints.html

      希望它能解决问题..!

      【讨论】:

      • 在XIB,您将在顶部的工具栏上拥有编辑器选项。单击编辑器 --> Pin --> 宽度/高度。或者您可以使用上面的链接设置约束。请参阅我更新的链接答案...!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-22
      • 2017-07-31
      • 1970-01-01
      • 2010-12-30
      相关资源
      最近更新 更多