ios 代码设置控件宽高比_用宽高比调整UIImage的大小?
我知道这很老了,但是感谢那篇文章-它使我从尝试使用比例尺重定向到绘制图像。万一对任何人都有利,我做了一个扩展类,我将在这里进行介绍。它允许您调整图像的大小,如下所示:
UIImage imgNew = img.Fit(40.0f, 40.0f);
我不需要合适的选项,但可以轻松扩展它以支持Fill。
using CoreGraphics;
using System;
using UIKit;
namespace SomeApp.iOS.Extensions
{
public static class UIImageExtensions
{
public static CGSize Fit(this CGSize sizeImage,
CGSize sizeTarget)
{
CGSize ret;
float fw;
float fh;
float f;
fw = (float) (sizeTarget.Width / sizeImage.Width);
fh = (float) (sizeTarget.Height / sizeImage.Height);
f = Math.Min(fw, fh);
ret = new CGSize
{
Width = sizeImage.Width * f,
Height = sizeImage.Height * f
};
return ret;
}
public static UIImage Fit(this UIImage image,
float width,
float height,
bool opaque = false,
float scale = 1.0f)
{
UIImage ret;
ret = image.Fit(new CGSize(width, height),
opaque,
scale);
return ret;
}
public static UIImage Fit(this UIImage image,
CGSize sizeTarget,
bool opaque = false,
float scale = 1.0f)
{
CGSize sizeNewImage;
CGSize size;
UIImage ret;
size = image.Size;
sizeNewImage = size.Fit(sizeTarget);
UIGraphics.BeginImageContextWithOptions(sizeNewImage,
opaque,
1.0f);
using (CGContext context = UIGraphics.GetCurrentContext())
{
context.ScaleCTM(1, -1);
context.TranslateCTM(0, -sizeNewImage.Height);
context.DrawImage(new CGRect(CGPoint.Empty, sizeNewImage),
image.CGImage);
ret = UIGraphics.GetImageFromCurrentImageContext();
}
UIGraphics.EndImageContext();
return ret;
}
}
}
按照上面的文章,它为图像启动了一个新的上下文,然后为该图像找出纵横比,然后绘制到图像中。如果您还没有完成任何Swift xcode开发时间,那么UIGraphics对于我使用的大多数系统都会有些落后,但还不错。一个问题是,默认情况下,位图从下至上绘制。为了解决这个问题,
context.ScaleCTM(1, -1);
context.TranslateCTM(0, -sizeNewImage.Height);
将图形的方向更改为更常见的左上角到右下角...,但是随后还需要移动原点,因此也需要移动TranslateCTM。
希望它可以节省一些时间。
干杯
ios 代码设置控件宽高比_用宽高比调整UIImage的大小?相关推荐
- ios 代码设置控件宽高比_#iOS 开发实用技巧# Masonry 控件宽高(不同控件之间宽高比)比设置方法...
Masonry 项目中我们实用 Masonry 自动布局,可能需要设置控件的宽高比,需要记录一下这个方法. 一句代码搞定: 注意这里需要设置的是控件的宽高比. make.width.equalTo(s ...
- ios 代码设置控件宽高比_IOS开发入门之iOS一套代码适配所有iPhone手机布局实现方案...
本文将带你了解IOS开发入门iOS一套代码适配所有iPhone手机布局实现方案,希望本文对大家学IOS有所帮助. iOS一套代码适配所有iPhone手机布局实现方案 本文主要是讲述一套代码适配所有iP ...
- ios 代码设置控件宽高比_iOS基于代码按比例约束方法进行屏幕适配
还记得刚刚开始学习iOS的开发的时候,简简单单的小控件练习,我总是习惯性的写死Frame,后来知道了屏幕适配,添加约束这样才能使UI更好的展示在屏幕上,Objective-C中的Masonry,Swi ...
- ios 代码设置控件宽高比_iOS--利用比例纯代码适配屏幕大小
首先说下让自己的程序支持iPhone6和6+,第一种使用官方提供的launch screen.xib,这个直接看官方文档即可,这里不再多述:第二种方法是和之前iPhone5的类似,比较简单,为iPho ...
- ios 代码设置控件宽高比_ios-自动布局以保持视图大小比例
我正在努力实现以下目标: 我的xib中有2个视图,需要使边缘(两侧和顶部)保持20像素 需要调整大小的2个视图的大小不同 它们必须相隔20像素 它们的宽度需要相对于父视图的宽度保持不变 我阅读了有关执 ...
- android设置屏幕高度和宽度设置,Android手机的屏幕宽高度和代码设置控件的宽高度...
1.Android手机的屏幕宽高度 WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE); int w ...
- IOS代码添加控件,控件移动,放大,缩小,旋转
控件移动,放大,缩小,旋转 1,代码添加控件 例如: [objc] view plaincopy /* 1.创建一个控件 2.设置控件的位置,大小 3.设置控件所需要的各个属性 4.添加入父控件 5. ...
- IOS 代码控制控件始终居中
2019独角兽企业重金招聘Python工程师标准>>> 实现代码:(以UILabel为例) UILabel *label = [[UILabel alloc] initWithFra ...
- IOS autosizing(设置控件的固定位置大小)
- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typicall ...
最新文章
- 将新主要功能部署到生产时要考虑的5件事情
- 性能测试篇 :Jmeter监控服务器性能
- 三种常见字符编码简介:ASCII、Unicode和UTF-8
- memcached客户端_分布式算法真是吊炸天 – memcached - 第287篇
- Android的Dialog类设计的太糟糕了!
- yum无法正常使用的解决办法
- 将数据追加到html 表格中,【HTML】使用Jquery实现将输入数据添加至表格中
- php无法查询excel数据,laravel phpexcel无法读取excel中中文表头列数据
- linux界面电池信息,Linux下查看电池损耗等信息
- 动物称重管理系统HDX|FDX-B格式低频动物电子耳标面板式远距离读写器|识读器HX-L81100出线方式与标签识读距离
- 小程序商城框架源码 小程序源码带前端+后台+数据库
- Houdini函数表达式
- 涂鸦蓝牙SDK开发系列教程——5.应用开发
- Unity3D网络游戏实战——通用服务器框架
- 2、AP上线的那些事儿(1)capwap建立过程、设备初始化以及二层上线
- 跨考=浪费大学四年?跨专业考研应该怎么做?
- ANTVR:虚拟现实的拓荒者
- 奇兵给seo新手的学习建议
- C语言|职工工资管理系统
- 功耗大好还是小好_家电是功率大好还是小好....