iOS边练边学--图片的拉伸

  • 图片拉伸方法一:

IOS 5.0以后才有的方法:

 1 - (void)viewDidLoad {
 2     [super viewDidLoad];
 3     UIImageView *imageView = [[UIImageView alloc] init];
 4     imageView.frame = CGRectMake(30, 30, 300, 300);
 5     UIImage *image = [UIImage imageNamed:@"chat_send_press_pic"];
 6     // IOS5.0 传入的是需要保护的区域,其余部分按照resizingMode进行选择平铺还是拉伸
 7     image = [image resizableImageWithCapInsets:UIEdgeInsetsMake(30, 30, 20, 30) resizingMode:UIImageResizingModeTile];
 8
 9     imageView.image = image;
10     [self.view addSubview:imageView];
11     }
  • 图片拉伸方法二:

最原始的一种方法,同样也是很靠谱的

 1 - (void)viewDidLoad {
 2     [super viewDidLoad];
 3     UIImageView *imageView = [[UIImageView alloc] init];
 4     imageView.frame = CGRectMake(30, 30, 300, 300);
 5     UIImage *image = [UIImage imageNamed:@"chat_send_press_pic"];
 6     // IOS5.0 传入的是需要保护的区域,其余部分按照resizingMode进行选择平铺还是拉伸
 7     image = [image resizableImageWithCapInsets:UIEdgeInsetsMake(30, 30, 20, 30) resizingMode:UIImageResizingModeTile];
 8
 9     // 最早的方法
10     // 将图片宽度和高度尺寸的一般传进去,系统会提取图片中间的1*1区域拉伸填充图片
11     // 可以通过封装简化代码,补充一个UIImage的分类
12     image = [image stretchableImageWithLeftCapWidth:image.size.width * 0.5 topCapHeight:image.size.height * 0.5];
13
14     imageView.image = image;
15     [self.view addSubview:imageView];

为了简化代码所创建的分类

  • 图片拉伸方法三:

通过,实现方法如图所示:

代码不变:

1 - (void)viewDidLoad {
2     [super viewDidLoad];
3     UIImageView *imageView = [[UIImageView alloc] init];
4     imageView.image = [UIImage imageNamed:@"chat_send_press_pic"];
5     imageView.frame = CGRectMake(30, 30, 300, 300);
6     [self.view addSubview:imageView];
7 }
时间: 2024-12-27 19:13:24

iOS边练边学--图片的拉伸的相关文章

iOS边练边学--(Quartz2D)图片裁剪,带圆环的裁剪

一.图片裁剪,示意图 二.带圆环的图片裁剪示意图

iOS边练边学--(Quartz2D)图片添加水印

一.给图片添加水印的基本步骤 加载图片 手动创建位图上下文 绘制原生的图片 给原生的图片添加文字 生成一张图片给我们,从上下文中获取图片 关闭上下文 二.注意:位图上下文的获取方式跟layer上下文不一样.位图上下文需要我们手动创建 三.效果图

iOS边练边学--多线程练习的多图片下载 以及 使用第三方框架(SDWebImage)的多图片下载

一.自己实现多图片下载应该注意的问题 沙盒缓存的问题 程序缓存的问题 cell重复利用显示图片混乱的问题 -- 用户拖拽快,下载图片慢导致的 解决图片混乱引入NSOperation集合的问题 资源下载失败的问题(练习中没有出现过,但是一定要考虑) 1 #import "ChaosViewController.h" 2 #import "ChaosApp.h" 3 4 @interface ChaosViewController () 5 /** 模型集合 */ 6

iOS边练边学--CALayer,非根层隐式动画,钟表练习

一.CALayer UIView之所以能显示在屏幕上,完全是因为他内部的一个图层 在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层 当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘制,并且会将所有内容绘制在自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上,于是就完成了UIView的显示 UIView本身不具备显示的功能,是他内部的层才有显示功能 二.CALayer的基本使用 三.关于CALa

iOS边练边学--多线程介绍、NSThread的简单实用、线程安全以及线程之间的通信

一.iOS中的多线程 多线程的原理(之前多线程这块没好好学,之前对多线程的理解也是错误的,这里更正,好好学习这块) iOS中多线程的实现方案有以下几种 二.NSThread线程类的简单实用(直接上代码) 三.多线程的安全隐患 资源共享 1块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源 比如多个线程访问同一个对象.同一个变量.同一个文件 当多个线程访问同一块资源时,很容易引发数据错乱和数据安全问题(存钱取钱的例子,多个售票员卖票的例子) 安全隐患解决的方法 --- 互斥锁(图解)

iOS边练边学--触摸事件以及能够拖拽的UIView的练习

一.用户在使用APP的过程中,会产生各种各样的事件.iOS中的事件可以分为3大类型: 二.响应者对象 在iOS中只有继承了了UIResponder的对象才能接受并处理事件,这样的对象称之为“响应者对象” UIApplication.UIViewController.UIView都继承自UIResponder,因此他们都是响应者对象,都能够接受并处理事件 UIResponder内部提供了以下方法来处理事件 三.练习中对UIView的触摸事件进行了熟悉 四.UITouch 一根手指对应一个UITou

iOS边练边学--应用数据存储的常用方式(plist,Preference,NSKeyedArchiver)其中的三种

iOS应用数据存储的常用方式: XML属性列表(plist)归档 Preference(偏好设置) NSKeyedArchiver归档(NSCoding) SQLite3--这里暂且不讲 Core Data--这里暂且不讲 一.应用沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒 应用沙盒的文件系统目录,如下图所示 二.应用沙盒结构分析 应用程序包:(上图中的Layer)包含了所有的资源文件和可执行文件 Do

iOS边练边学--多线程NSOperation介绍,子类实现多线程的介绍(任务和队列),队列的取消、暂停(挂起)和恢复,操作依赖与线程间的通信

一.NSOperation NSOperation和NSOperationQueue实现多线程的具体步骤 先将需要执行的操作封装到一个NSOperation对象中 然后将NSOperation对象添加到NSOperationQueue中 系统会自动将NSOperationQueue中的NSOperation取出来 将取出的NSOperation封装的操作放到一条新线程中执行 NSOperation是个抽象类,并不具备封装操作的能力,必须使用它的子类 使用NSOperation子类的方式有3种 N

iOS边练边学--Segue数据逆传(用block代替delegate)

一.block与方法的异同点: 相同点是都是保存代码段,什么时候执行,什么时候调用 不同点是block不受类或者对象的约束:方法收到了类或者对象的约束 二.思路:(通讯录练习) 在联系人控制器中,添加完联系人或者修改完后保存联系人的时候需要刷新联系人控制器的tableView 但是,联系人控制器中不能确定刷新tableView的时机 解决办法:在联系人控制器中定义好对应控制器的block代码段,block执行的时机由block的拥有者来指定 三.代码实现: