
需求:UIImage根据屏幕宽度按照自己本身比例改变高度
上代码,为UIImage创建一个Category
#import "UIImage+UIImageExtras.h"
@implementation UIImage (UIImageExtras)
- (UIImage *)imageByScalingToSize:(CGSize)targetSize
{
UIImage *sourceImage = self;
UIImage *newImage = nil;
CGSize imageSize = sourceImage.size;
CGFloat width = imageSize.width;
CGFloat height = imageSize.height;
CGFloat targetWidth = targetSize.width;
CGFloat targetHeight = targetSize.height;
CGFloat scaleFactor = 0.0;
CGFloat scaledWidth = targetWidth;
CGFloat scaledHeight = targetHeight;
CGPoint thumbnailPoint = CGPointMake(0.0,0.0);
if (CGSizeEqualToSize(imageSize, targetSize) ==NO) {
CGFloat widthFactor = targetWidth / width;
CGFloat heightFactor = targetHeight / height;
if (widthFactor < heightFactor)
scaleFactor = widthFactor;
else
scaleFactor = heightFactor;
scaledWidth = width * scaleFactor;
scaledHeight = height * scaleFactor;
// center the image
if (widthFactor < heightFactor) {
thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5;
} else if (widthFactor > heightFactor) {
thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5;
}
}
// this is actually the interesting part:
UIGraphicsBeginImageContext(targetSize);
CGRect thumbnailRect = CGRectZero;
thumbnailRect.origin = thumbnailPoint;
thumbnailRect.size.width = scaledWidth;
thumbnailRect.size.height = scaledHeight;
[sourceImage drawInRect:thumbnailRect];
newImage =UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
if(newImage == nil)
NSLog(@"could not scale image");
return newImage ;
}
@end
在需要使用的地方import然后使用
CGSize size = image.size; image = [image imageByScalingToSize:CGSizeMake([UIScreen mainScreen].bounds.size.width,[UIScreen mainScreen].bounds.size.width * (size.height / size.width))]; self.imageview.image = image;
以上所述是小编给大家介绍的iOS UIImage根据屏宽调整size的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# ios
# uiimage
# size
# iOS中UIImagePickerController图片选取器的用法小结
# iOS应用开发中对UIImage进行截取和缩放的方法详解
# IOS UI学习教程之使用UIImageView控件制作动画
# iOS开发中UIImageView控件的常用操作整理
# iOS开发中使用Quartz2D绘图及自定义UIImageView控件
# 小编
# 在此
# 给大家
# 所述
# 创建一个
# 给我留言
# 感谢大家
# 疑问请
# 有任何
# imageSize
# CGFloat
# sourceImage
# targetSize
# nil
# newImage
# scaleFactor
# scaledWidth
# targetHeight
# width
相关文章:
建站主机CVM配置优化、SEO策略与性能提升指南
nginx修改上传文件大小限制的方法
已有域名建站全流程解析:网站搭建步骤与建站工具选择
家具网站制作软件,家具厂怎么跑业务?
如何通过二级域名建站提升品牌影响力?
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
如何用好域名打造高点击率的自主建站?
建站之星客服服务时间及联系方式如何?
建站主机无法访问?如何排查域名与服务器问题
如何通过远程VPS快速搭建个人网站?
网站设计制作企业有哪些,抖音官网主页怎么设置?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
如何在橙子建站上传落地页?操作指南详解
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
韩国服务器如何优化跨境访问实现高效连接?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
济南网站制作的价格,历城一职专官方网站?
c# 在高并发下使用反射发射(Reflection.Emit)的性能
兔展官网 在线制作,怎样制作微信请帖?
实现虚拟支付需哪些建站技术支撑?
建站之星后台密码如何安全设置与找回?
建站为何优先选择香港服务器?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
建站之星安装后界面空白如何解决?
建站主机与虚拟主机有何区别?如何选择最优方案?
如何用美橙互联一键搭建多站合一网站?
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
微课制作网站有哪些,微课网怎么进?
学校为何禁止电信移动建设网站?
如何在Golang中使用replace替换模块_指定本地或远程路径
头像制作网站在线制作软件,dw网页背景图像怎么设置?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
如何快速重置建站主机并恢复默认配置?
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
宁波自助建站系统如何快速打造专业企业网站?
如何基于云服务器快速搭建网站及云盘系统?
如何在VPS电脑上快速搭建网站?
如何在建站之星绑定自定义域名?
建站之星在线客服如何快速接入解答?
创业网站制作流程,创业网站可靠吗?
完全自定义免费建站平台:主题模板在线生成一站式服务
如何在IIS管理器中快速创建并配置网站?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
php8.4新语法match怎么用_php8.4match表达式替代switch【方法】
如何在西部数码注册域名并快速搭建网站?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?
教学论文网站制作软件有哪些,写论文用什么软件
?
*请认真填写需求信息,我们会在24小时内与您取得联系。