how can I get the scale factor of a UIImageView who's mode is AspectFit?

前端 未结 2 1733
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-15 01:15

how can I get the scale factor of a UIImageView who\'s mode is AspectFit?

That is, I have a UIImageView with mode AspectFit. The image (square) is scaled to my UIIm

2条回答
  •  抹茶落季
    2020-12-15 01:29

    I've written a UIImageView category for that:

    UIImageView+ContentScale.h

    #import 
    
    @interface UIImageView (UIImageView_ContentScale)
    
    -(CGFloat)contentScaleFactor;
    
    @end
    

    UIImageView+ContentScale.m

    #import "UIImageView+ContentScale.h"
    
    @implementation UIImageView (UIImageView_ContentScale)
    
    -(CGFloat)contentScaleFactor
    {
        CGFloat widthScale = self.bounds.size.width / self.image.size.width;
        CGFloat heightScale = self.bounds.size.height / self.image.size.height;
    
        if (self.contentMode == UIViewContentModeScaleToFill) {
            return (widthScale==heightScale) ? widthScale : NAN;
        }
        if (self.contentMode == UIViewContentModeScaleAspectFit) {
            return MIN(widthScale, heightScale);
        }
        if (self.contentMode == UIViewContentModeScaleAspectFill) {
            return MAX(widthScale, heightScale);
        }
        return 1.0;
    
    }
    
    @end
    

提交回复
热议问题