iOS学习--详解UIView的 contentStretch属性
方法
- 通过一个图片建立一个简单的UIImageView
- 设置它的contentStretch属性
- 修改它的frame属性
- 观察
测试用的图片:
新建一个 UIImageView:
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"grid.png"]];
保存它的一些属性值备用
CGSize imageSize;
imageSize.width = imageView.frame.size.width;
imageSize.height = imageView.frame.size.height;
CGSize stretchSize;
stretchSize.width = 50.0;
stretchSize.height = 100.0;
水平拉伸
设置 contentStretch
属性(一般为 0.0 到 1.0之间):
imageView.contentStretch = CGRectMake(0.0, 0.0, stretchSize.width/imageSize.width, stretchSize.height/imageSize.height);
水平拉伸:
imageView.frame = CGRectMake(10.0, 10.0, imageSize.width*1.2, imageSize.height);
这时拉伸的区域如下:
垂直拉伸
使用同样的 contentStretch
, 图片被垂直拉伸:
imageView.frame = CGRectMake(0.0, 0.0, imageSize.width, imageSize.height*1.2);
这时拉伸的区域如下:
两个方向同时拉伸:
使用下面的 contentStretch值
:
imageView.contentStretch = CGRectMake(100.0/imageSize.width, 100.0/imageSize.height, stretchSize.width/imageSize.width, stretchSize.height/imageSize.height);
水平和垂直同时拉伸:
imageView.frame = CGRectMake(0.0, 0.0, 450.0, 450.0);
实际拉伸的区域是:
不要泄露内存:
[imageView release];
结论
对于给定的 contentStretch
:
有一个“拉伸”区域:
和一个“固定”区域:
相关代码:
https://gist.github.com/8038667a374da0f6a24d#file_content_stretch_test.m
图片:
http://f.cl.ly/items/050w3k342y032F0E3n29/grid.png
原文地址:http://j0ris.tumblr.com/post/7345178587/uiview-contentstretch
iOS学习--详解UIView的 contentStretch属性的更多相关文章
- ios学习--详解IPhone动画效果类型及实现方法
详解IPhone动画效果类型及实现方法是本文要介绍的内容,主要介绍了iphone中动画的实现方法,不多说,我们一起来看内容. 实现iphone漂亮的动画效果主要有两种方法,一种是UIView层面的,一 ...
- 【转】IOS AutoLayout详解(三)用代码实现(附Demo下载)
转载自:blog.csdn.net/hello_hwc IOS SDK详解 前言: 在开发的过程中,有时候创建View没办法通过Storyboard来进行,又需要AutoLayout,这时候用代码创建 ...
- IOS SDK详解
来源:http://blog.csdn.net/column/details/huangwenchen-ios-sdk.html?page=1#42803301 博客专栏>移动开发专栏>I ...
- 弹性布局学习-详解align-content(六)
弹性布局学习-详解align-content(六)
- 弹性布局学习-详解 justify-content(三)
弹性布局学习-详解 justify-content(三)
- 弹性布局学习-详解 flex-direction【决定主轴的方向】(二)
弹性布局学习-详解 flex-direction[决定主轴的方向](二)
- 弹性布局学习-详解flex-wrap(五)
目录 弹性布局学习-介绍(一) 弹性布局学习-详解 flex-direction[决定主轴的方向](二) 弹性布局学习-详解 justify-content(三) 弹性布局学习-详解 align-i ...
- 弹性布局学习-详解 align-items(四)
目录 弹性布局学习-介绍(一) 弹性布局学习-详解 flex-direction[决定主轴的方向](二) 弹性布局学习-详解 justify-content(三) 弹性布局学习-详解 align-i ...
- 详解 javascript中offsetleft属性的用法(转)
详解 javascript中offsetleft属性的用法 转载 2015-11-11 投稿:mrr 我要评论 本章节通过代码实例介绍一下offsetleft属性的用法,需要的朋友可以做一 ...
随机推荐
- IO流7 --- FileWriter写出数据的操作 --- 技术搬运工(尚硅谷)
FileWriter字符输出 @Test public void test3(){ File file = new File("hello1.txt"); FileWriter f ...
- git中的错误
! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'git@gitee.co ...
- Leetcode48. Rotate Image旋转图像
给定一个 n × n 的二维矩阵表示一个图像. 将图像顺时针旋转 90 度. 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵.请不要使用另一个矩阵来旋转图像. 示例 1: 给定 m ...
- Cron定时任务应用到Thinkphp – 贤生博客
Cron定时任务应用到Thinkphp 安装crontab: yum install crontabs 关于cron的一些命令: /sbin/service crond start //启动服务 /s ...
- 卡特兰数(catalan)总结
卡特兰数的公式 递推公式1:$f(n)=\sum \limits_{i=0}^{n-1}f(i)*f(n-i-1)$ 递推公式2:$f(n)=\frac{f(n-1)*(4*n-2)}{n+1}$ 组 ...
- 模拟7题解 T2visit
T2 visit [组合数学][中国剩余定理] 一场考试难得见两个数学题 本来想矩阵快速幂,显然空间复杂度不行,主要是没时间,就没打 正解: 首先推波式子 1.$C_{t}^{k}$ 在t步中总 ...
- 获取电脑名和IP地址
private string GetHostNameAndIP( bool isv4Orv6) { string HostName = Dns.GetHostN ...
- dijkstra算法为什么不能有负边?
因为Dijkstra算法在计算最短路径时,不会因为负边的出现而更新已经计算过(收录过)的顶点的路径长度, 这样一来,在存在负边的图中,就可能有某些顶点最终计算出的路径长度不是最短的长度. 假设前两个数 ...
- ajax下载小于500M大文件【原】
不推荐使用的FileReader 之前用FileReader读取下载文件,当文件超过1M浏览器就立即扑街了 // 文件下载 function download(blob, fileName) { va ...
- Android——系统权限
Android是一个特权分隔的操作系统,每一个应用程序运行在不同的系统身份中(Linux的user ID和group ID).系统部分和不同的身份被隔离开来.因此,Linux隔离了应用程序(与其它程序 ...