iOS开发——UI基础-按钮内边距,图片拉伸
一、内边距
UIButton有三个属性,分别可以设置按钮以及内部子控件的内边距
1、contentEdgeInsets
如果是设置contentEdgeInsets, 会把UIImageView和UIlabel当做一个整体移动
btn.contentEdgeInsets = UIEdgeInsetsMake(, , , );
对应状态:
2、titleEdgeInsets/imageEdgeInsets
如果是设置titleEdgeInsets/imageEdgeInsets. 那么不会影响到另外一个, 也就是只会改变当前设置的这个控件
btn.titleEdgeInsets = UIEdgeInsetsMake(, , , ); btn.imageEdgeInsets = UIEdgeInsetsMake(30 ,0 , , );
二、图片拉伸
1.iOS5以前
UIButton *btn = [[UIButton alloc] init]; UIImage *image = [UIImage imageNamed:@"common_button_blue_highlighted"]; // LeftCapWidth: 左边多少不能拉伸 // 右边多少不能拉伸 = 控件的宽度 - 左边多少不能拉伸 - 1 // right = width - leftCapWidth - 1 // 1 = width - leftCapWidth - right // topCapHeight: 顶部多少不能拉伸 // 底部有多少不能拉伸 = 控件的高度 - 顶部多少不能拉伸 - 1 // bottom = height - topCapWidth - 1 // 1 = height - topCapWidth - bottom UIImage *newImage = [image stretchableImageWithLeftCapWidth: topCapHeight:];
2.iOS5开始
// UIEdgeInsets是告诉系统哪些地方需要受保护, 也就是不可以拉伸 // resizableImageWithCapInsets默认拉伸方式是平铺 UIEdgeInsets insets = UIEdgeInsetsMake(image.size.height * 0.5, image.size.width * 0.5, image.size.height * 0.5, image.size.width * 0.5); UIImage *newImage = [image resizableImageWithCapInsets:insets];
3.iOS6开始
// resizingMode指定拉伸模式 // 平铺 // 拉伸 UIEdgeInsets insets = UIEdgeInsetsMake(, , , ); UIImage *newImage = [image resizableImageWithCapInsets:insets resizingMode:UIImageResizingModeStretch]; [btn setBackgroundImage:newImage forState:UIControlStateNormal]; btn.frame = CGRectMake(, , , ); [self.view addSubview:btn];
iOS开发——UI基础-按钮内边距,图片拉伸的更多相关文章
- iOS开发——UI基础-按钮的创建和设置
@interface ViewController () - (IBAction)customBtnClick; @end @implementation ViewController - (void ...
- iOS开发UI基础—手写控件,frame,center和bounds属性
iOS开发UI基础—手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4 ...
- iOS开发UI篇—Quartz2D使用(图片剪切)
iOS开发UI篇—Quartz2D使用(图片剪切) 一.使用Quartz2D完成图片剪切 1.把图片显示在自定义的view中 先把图片绘制到view上.按照原始大小,把图片绘制到一个点上. 代码: - ...
- IOS开发UI基础--数据刷新
IOS开发UI基础--数据刷新 cell的数据刷新包括下面几个方面 加入数据 删除数据 更改数据 全局刷新方法(最经常使用) [self.tableView reloadData]; // 屏幕上的全 ...
- iOS开发——UI基础-UIButton、UIImageView、UILabel的选择
1.UILabel - UILabel的常见属性 @property(nonatomic,copy) NSString *text; 显示的文字 @property(nonatomic,retain) ...
- IOS开发UI基础之UIButton
什么是按钮?
- iOS开发-UI基础Demo
现在更多的学习资料都是xCode4.X的,发现xCode6.1还是很多东西,如果有正在学习iOS开发的可以通过Demo简单了解下iOS的UI开发~ 1.新建单视图文件: 2.新建项目名称,语言选择OC ...
- IOS开发UI基础UITableView的属性
UITableView UITableView内置了两种样式:UITableViewStylePlain,UITableViewStyleGrouped <UITableViewDataSour ...
- iOS开发——UI基础-控制器,IBAction和IBOutlet,UIView
第一个ios程序 @interface ViewController : UIViewController @property(nonatomic, weak)IBOutlet UILabel *la ...
随机推荐
- java编程思想-java中的并发(四)
五. 新类库中的构件 Java SE5的java.util.concurrent引入了大量设计用来解决并发问题的新类.学习使用它们将有助于编写出更加简单而强壮的并发程序. 1. CountDownLa ...
- python和numpy的版本、安装位置
命令行下查看python和numpy的版本和安装位置 1.查看python版本 方法一: python -V 注意:‘-V‘中‘V’为大写字母,只有一个‘-’ 方法二: python --versio ...
- .Net Framework中的标准委托和事件_1
.Net Framework中的标准委托,已经定义在命名空间System中, namespace System { public delegate void EventHandler(object s ...
- jquery控制滚动条改变上面固定(fixed)导航条或者搜索框的属性
<script type="text/javascript"> $(document).ready(function(){ $(window).scroll( func ...
- JavaScript学习笔记——BOM_window对象
javascript浏览器对象模型-windwo对象 BOM Browser Object Model window对象 是BOM中所有对象的核心. 一.属性 1.(位置类型-获得浏览器的位置) IE ...
- Java Web学习笔记-Servle生命周期
Servlet会在服务器启动或第一次请求该Servlet的时候开始生命周期,在服务器停止的时候结束生命周期. 无论请求多少次Servlet,最多只有一个Servlet实例.多个客户端并发请求Servl ...
- windows命令关机
不知道为啥,远程连接的window服务器没有关机命令,感觉是不是管理员权限导致的,所以找了下用命令关机,如下 shutdown -s -t #5秒内关机 shutdown -r -t #5秒内重启
- iOS直播点赞动画,iOS直播心型点赞动画
https://github.com/songxing10000/LikeAnimation-PraiseAnimation
- OWIN support for the Web API 2 and MVC 5 integrations in Autofac
Currently, in the both the Web API and MVC frameworks, dependency injection support does not come in ...
- Java中设置classpath、path、JAVA_HOME的作用
Thinking in Java对classpath作用的解释 Java 解释器的工作程序如下: 首先,它找到环境变量CLASSPATH(将Java 或者具有Java 解释能力的工具——如浏览器——安 ...