Why scale to fill give bigger image than UIImageVIew size? (using swift)

前端 未结 5 1078
天涯浪人
天涯浪人 2021-01-31 18:23

I\'m trying to showing a list of place name, including it\'s photo using PFQueryTableViewController. It\'s included in ParseUI SDK from parse.com

I have man

相关标签:
5条回答
  • 2021-01-31 18:52

    From apple doc:

    UIViewContentModeScaleToFill

    Scales the content to fit the size of itself by changing the aspect ratio of the content if necessary

    UIViewContentModeScaleAspectFill

    Scales the content to fill the size of the view. Some portion of the content may be clipped to fill the view’s bounds.

    So your options are to use

    • UIViewContentModeScaleToFill, and possibly change the aspect ratio of displayed image,
    • UIViewContentModeScaleAspectFill, and use clipToBounds = YES on your PFImageView, to clip portions of image out of bounds.
    0 讨论(0)
  • 2021-01-31 18:53

    If you want to maintain the aspect ratio with varying width ,then use AspectFill and also use the imageview property clipstoBounds,it will not spread the imageview beyond the frame

    0 讨论(0)
  • 2021-01-31 18:54

    With content mode set to Aspect Fill, try setting clips to bounds to true as well, reason being the content mode aspect fill keeps on filling the frame of the image view till the frame is fully filled with content also keeping the aspect ratio intact. In the process of filling the container with image maintaining aspect ratio, either vertical or horizontal frame is fully filled, and the filling is continued till the other (if horizontal than vertical or vise versa) portion is fully filled. Thus the first filled portion either across vertical or horizontal will go out of bounds and the content will be visible outside the frame of the image view. To clip the extra content we need to clip the extra portion using imageView's clipsToBounds property set to true

    cell.photo.contentMode = UIViewContentMode.ScaleAspectFill
    cell.photo.clipsToBounds = true
    
    0 讨论(0)
  • 2021-01-31 19:06

    enter image description here

    Reference: an answer in another post which gives you clear insight - https://stackoverflow.com/a/14220605/3021573

    0 讨论(0)
  • 2021-01-31 19:09

    Alternatively for guys who prefer Interface Builder, you can check the Clip Subviews at your image view when you choose Aspect Fill, then it will not resize your Image View but still keep the same aspect ratio.

    0 讨论(0)
提交回复
热议问题