使用UIViewContentModeScaleAspectFit后的image的size

[复制链接]
59 8
我的uiimageview 的长宽是300,400, 我把一个1024*500的图片添加到imageview中,
使用了UIViewContentModeScaleAspectFit, 图片自适应了imageview的大小。

我现在要做截图功能,希望获得自适应后image在imageview中的size 和图片左上顶点在imageview的的坐标,imageview.frame.size 和 origin都不是我想要的

有什么方法可以获得我的要求吗?

举报 使用道具

回复

8 个评论

eh000  注册会员  发表于 2018-5-18 08:21:01  | 显示全部楼层
LZ的UIViewContentModeScaleAspectFit 怎么用的,我设置了没起作用啊~~~
//asyncimageview是自定义的一个类@interface AsyncImageView : UIControl <NSFetchedResultsControllerDelegate,ImageLoaderDelegate>
    imageView02 = [[AsyncImageView alloc] init];
    [imageView02 setContentMode:UIViewContentModeScaleAspectFit];
    imageView02.imageViewBorderColor = [UIColor colorWithRed:200/255 green:200/255 blue:200/255 alpha:0.1];
    imageView02.urlString=[[imageArray objectAtIndex:imageflag]picUrl];
    image1=[imageView02 image];//image这个方法返回一个图片
    [imageView02 setFrame:rect_image];   //rect_image是一个固定的范围
    [imageView02 setImage:image1];
    [self.view addSubview:imageView02];

举报 使用道具

回复
qwxrqwxr  新手上路  发表于 2018-5-18 12:20:10  | 显示全部楼层
AVMakeRectWithAspectRatioInsideRect()


可以计算图片真实的位置

举报 使用道具

回复
aaabing456  新手上路  发表于 2018-5-18 12:21:27  | 显示全部楼层
请问, 4 和 19 具体 是指什么? 谢谢

举报 使用道具

回复
anglee  新手上路  发表于 2018-5-18 12:54:53  | 显示全部楼层
我的uiimageview  的长宽是300,400, 我把一个1024*500的图片添加到imageview中,
使用了UIViewContentModeScaleAspectFit, 图片自适应了imageview的大小。

我现在要做截图功能,希望获得自适应后image在imageview中的size 和图片左上顶点在imageview的的坐标,imageview.frame.size 和 origin都不是我想要的

有什么方法可以获得我的要求吗?

举报 使用道具

回复
umh  新手上路  发表于 2018-5-18 13:14:21  | 显示全部楼层
我现在也碰到这个问题啊,需要获得自适应后image在imageview中的size 尺寸,图片左上顶点的坐标值。LZ怎么解决的,能否告知?

举报 使用道具

回复
sstx_124  新手上路  发表于 2018-5-18 13:24:00  | 显示全部楼层
- (CGSize)getScaleImageSize {
    float heightScale = self.mainImage.frame.size.height/_selectedImage.size.height/1.0;
    float widthScale = self.mainImage.frame.size.width/_selectedImage.size.width/1.0;
    float scale = MIN(heightScale, widthScale);
    float h = _selectedImage.size.height*scale;
    float w = _selectedImage.size.width*scale;
    return CGSizeMake(w, h);
}

举报 使用道具

回复
hhlovecy  新手上路  发表于 2018-5-18 14:28:38  | 显示全部楼层
float heightScale = imageview.frame.height/self.currentImage.size.height;
    float widthScale = imageview.frame.width/self.currentImage.size.width;
    float scale = MIN(heightScale, widthScale);
   
    if (heightScale > widthScale) {
        //横图
        float heigth = self.currentImage.size.height*scale;
        float gap = (imageview.frame.height-heigth)/2;
        self.closeIcon.frame = CGRectMake(imageview.frame.width-4-19, gap+4, 19, 19);
    }
    else {
        //长图
        float width = self.currentImage.size.width*scale;
        float gap = (imageview.frame.width-width)/2;
        self.closeIcon.frame = CGRectMake(imageview.frame.width-4-gap-19, 4, 19, 19);
    }

19 为删除那个x的大小

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

ios.irunthink.com
搜索
热搜: iOS swift 下拉刷新

图文热点

更多

开发教程

更多

客服中心

400-800 周一至周日 9:30-17:30 仅收市话费

关注我们

  • 微信扫描
  • 关注微信
关于我们
关于我们
友情链接
联系我们
帮助中心
精贴推荐
源码上传
注册登录
服务支持
资源下载
关注我们
官方微博
官方空间
快速回复 返回顶部 返回列表