通过实例和图片理解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属性的更多相关文章

  1. ios学习--详解IPhone动画效果类型及实现方法

    详解IPhone动画效果类型及实现方法是本文要介绍的内容,主要介绍了iphone中动画的实现方法,不多说,我们一起来看内容. 实现iphone漂亮的动画效果主要有两种方法,一种是UIView层面的,一 ...

  2. 【转】IOS AutoLayout详解(三)用代码实现(附Demo下载)

    转载自:blog.csdn.net/hello_hwc IOS SDK详解 前言: 在开发的过程中,有时候创建View没办法通过Storyboard来进行,又需要AutoLayout,这时候用代码创建 ...

  3. IOS SDK详解

    来源:http://blog.csdn.net/column/details/huangwenchen-ios-sdk.html?page=1#42803301 博客专栏>移动开发专栏>I ...

  4. 弹性布局学习-详解align-content(六)

    弹性布局学习-详解align-content(六)

  5. 弹性布局学习-详解 justify-content(三)

    弹性布局学习-详解 justify-content(三)

  6. 弹性布局学习-详解 flex-direction【决定主轴的方向】(二)

    弹性布局学习-详解 flex-direction[决定主轴的方向](二)

  7. 弹性布局学习-详解flex-wrap(五)

    目录 弹性布局学习-介绍(一)  弹性布局学习-详解 flex-direction[决定主轴的方向](二) 弹性布局学习-详解 justify-content(三) 弹性布局学习-详解 align-i ...

  8. 弹性布局学习-详解 align-items(四)

    目录 弹性布局学习-介绍(一)  弹性布局学习-详解 flex-direction[决定主轴的方向](二) 弹性布局学习-详解 justify-content(三) 弹性布局学习-详解 align-i ...

  9. 详解 javascript中offsetleft属性的用法(转)

    详解 javascript中offsetleft属性的用法 转载  2015-11-11   投稿:mrr    我要评论 本章节通过代码实例介绍一下offsetleft属性的用法,需要的朋友可以做一 ...

随机推荐

  1. “微信小程序” js部分注解

    1.小程序不提供获取dom的操作,而是让我们直接将事件绑定写入到组件内.区别在于bind不阻止冒泡,而catch阻止冒泡. <view id="tapTest" bindta ...

  2. Leetcode47. Permutations II全排列2

    给定一个可包含重复数字的序列,返回所有不重复的全排列. 示例: 输入: [1,1,2] 输出: [ [1,1,2], [1,2,1], [2,1,1] ] 在全排列1题目的基础上先排序,目的是把相同的 ...

  3. Flask – SQLite:增加成员

    目录 简介 结构 展示 技术 运行 代码 创建数据库表单 views视图 models模块 home主页 list列表页 result消息结果页 studentst添加成员 简介 结构 $ tree ...

  4. R语言可视化二

    Lattice绘图系统 Lattice包: xyplot(散点图)/ bwplot / histrogram(柱状图)/ stripplot / dotplot(点图) 格式:xyplot(y~x | ...

  5. CommonJS、requirejs、ES6的对比

    文件路径 首先先搞清楚文件路径的写法,这里我总是记不住,有点晕,正好这次整理一下. 以 / 为起始,表示从根目录开始解析: 以 ./ 为起始,表示从当前目录开始解析: 以 ../ 为起始,表示从上级目 ...

  6. python的pip更改源,因为我们处于局域网中

    很多时候,比如网络不给力,连接超时.防火墙阻挡等等各种原因,我们可能无法从Python官方的PyPi仓库进行pip安装,这时候可以选择国内的第三方源,推荐使用豆瓣源,速度不错. 使用方法: pip i ...

  7. H5C3--sessionStorage和localStorage的使用

    一.sessionStorage的使用 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...

  8. web前端学习(二)html学习笔记部分(1) -- html5新增的元素及特性等等

    检查,在浏览器中可以调整设备类型 html5实现水池效果. lang:en为英文语言,中文语言zh <html lang="en"> <head> < ...

  9. Direct2D 第1篇 最简单的D2D程序

    原文:Direct2D 第1篇 最简单的D2D程序 编译之前,得先安装DirectX SDK #include <windows.h> #include <d2d1.h> #i ...

  10. 【难为听】weex-ui

    eslint 不喜欢,但是确实规范了代码,同古代统一货币一样,有无穷的意义.故喜欢 weex-ui在项目中的使用方法 npm install -g weex-toolkit@latest weex c ...