UI基础——按钮内边距,图片拉伸

一、内边距

UIButton有三个属性,分别可以设置按钮以及内部子控件的内边距

1、contentEdgeInsets

  如果是设置contentEdgeInsets, 会把UIImageView和UIlabel当做一个整体移动

btn.contentEdgeInsets = UIEdgeInsetsMake(30, 0, 0, 0);

对应状态:

2、titleEdgeInsets/imageEdgeInsets

  如果是设置titleEdgeInsets/imageEdgeInsets. 那么不会影响到另外一个, 也就是只会改变当前设置的这个控件

    btn.titleEdgeInsets = UIEdgeInsetsMake(0, 30, 0, 0);

    btn.imageEdgeInsets = UIEdgeInsetsMake(30 ,0 , 0, 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:5 topCapHeight:5];

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(5, 5, 5, 5);

    UIImage *newImage =  [image resizableImageWithCapInsets:insets resizingMode:UIImageResizingModeStretch];

    [btn setBackgroundImage:newImage forState:UIControlStateNormal];

    btn.frame = CGRectMake(100, 100, 200, 80);

    [self.view addSubview:btn];
时间: 2024-08-05 17:52:19

UI基础——按钮内边距,图片拉伸的相关文章

UI基础--按钮扩展动画

新建一个类:继承UIView #import "GWRoundView.h" @interface GWRoundView (){ CGFloat _Width; CGFloat _Height; } //中心按钮中心点,中心圆和周围圆的圆心距,圆心夹角, @property(nonatomic,assign)CGPoint btnCenter; @property(nonatomic,assign)CGFloat R; @property(nonatomic,assign)CGFlo

xcode UIButton创建、监听按钮点击、自定义按钮 、状态 、内边距

代码创建 //创建UIButton UIButton * btnType=[[UIButton alloc]init]; //设置UIControlStateNormal状态下的文字颜色 [btnType setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; //设置字体大小 btnType.titleLabel.font=[UIFont systemFontOfSize:9.0]; //设置边框的宽度 btnTyp

UI基础篇—iOS图片拉伸技巧

比如下面张图片,本来是设计来做按钮背景的:  button.png,尺寸为:24x60 现在我们把它用作为按钮背景,按钮尺寸是150x50: 1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 // 得到view的尺寸 5 CGSize viewSize = self.view.bounds.size; 6 7 // 初始化按钮 8 UIButton *button = [[UIButton alloc] init]; 9 // 设置尺寸 10

ios开发-UI基础-应用管理(单纯界面)改进5-使用代理实现监听下载按钮的点击(delegate)

[注意]转载时请注明出处博客园-吃唐僧肉的小悟空http://www.cnblogs.com/hukezhu/ 前几篇文章介绍了一个应用管理的小应用,从最开始的单纯实现功能,一步一步就行改进\封装,上篇文章是使用xib进行了优化,本篇文章使用代理实现监听下载按钮的点击. 在原来的基础上,使用代理的主要思路分析: 首先要新建一个协议 声明协议的要实现的方法(一般为optional) 声明一个遵守该协议的代理的属性 使用代理,通知其代理完成操作 在代理中的实现步骤: 遵守协议 设置代理(一般通过拖线

UI基础-图片浏览器-改进5

上篇文章,我们介绍了使用plist文件加载字典数据,用字典来存储数据,用键值对来存储数据,是NSDictionary类型(坏处:容易写错,不容易调试) 我们可以使用模型来存储数据,也就是将要说的字典转模型. 字典转模型: 字典:用来存储数据,用键值对来存储数据,是NSDictionary类型(坏处:容易写错,不容易调试) 模型:用来存储数据,用属性来存储数据,好处:(有提示,不容易写错) 字典转化成模型:一个字典转换成一个模型,把字典的键值对转换的模型的属性 模型的建立:模型是一个纯洁的obje

iOS7 UI兼容 导航栏按钮边距

转载自:http://www.cnblogs.com/maxfong/p/3375167.html iOS7之前的UI为: 而在iOS7中,由于设计方面的原因,使得UI变为: 修改的方法重写UINavigationItem的setLeftBarButtonItem和setRightBarButtonItem方法,使之与之前版本兼容: 代码如下: @interface UINavigationItem (margin) @end @implementation UINavigationItem (

IOS开发UI基础—在UIImageView中添加按钮以及Tag的参数说明

ios开发UI基础-在ImageView中添加按钮以及Tag的参数说明 一.tag参数 一个视图通常都只有一个父视图,多个子视图,在开发中可以通过使用子视图的tag来取出对应的子视图.方法为Viewwithtag: 提示点:在xib中如果想要通过tag参数获取对应的控件(属性),不要把tag的参数设置为0,因为xib中所有的对象默认tag都为0,设置为0取不到对象. 二.ImageView中添加按钮(1)ImageView和Button的比较 Button按钮的内部可以放置多张图片(4),而Im

ios开发-UI基础-超级猜图

[注意]转载时请注明出处博客园-吃唐僧肉的小悟空http://www.cnblogs.com/hukezhu/ 本篇文章介绍一个比较综合的小应用----超级猜图. 功能分析: 根据显示的图片,在下面的待选项按钮中选中正确答案按钮,选中的按钮会显示在正确答案按钮中 答案错误,答案颜色变为红色,分数减小 答案正确,答案颜色变为蓝色,两秒自动跳入下一题,分数增加 点击"下一题"可以进入下一个题目 点击"大图",可以放大显示图片,再次点击图片或者背景,图片缩小至原来大小 点

UI基础之UITableView案例QQ好友列表

一:模型数据 LLFriend #import <Foundation/Foundation.h> @interface LLFriend : NSObject /** * icon */ @property (nonatomic, copy) NSString *icon; /** * intro */ @property (nonatomic, copy) NSString *intro; /** * name */ @property (nonatomic, copy) NSString