UIButton那些应用细节

1、消除UIButton的高亮状态:
(1)自定义button
(2)重写Highlighted的set方法

1 - (void)setHighlighted:(BOOL)highlighted{};

2、修改button内部控件:UIImageView和UILabel的位置
(1)方法一:
   1】自定义button;
   2】重写以下方法:

1 // 重新设置ImageView的frame
2 - (CGRect)imageRectForContentRect:(CGRect)contentRect
3 {
4 return imageRect;
5 }
6 // 重新设置Label的frame
7 - (CGRect)titleRectForContentRect:(CGRect)contentRect
8 {
9 } 

(2)方法二:
   1】自定义button;
   2】重写LayoutSubviews方法:

 1 // 此举例实现的功能是让button内部的imageView和label上下排布
 2 - (void)layoutSubviews
 3 {
 4  [super layoutSubviews];
 5  CGFloat titleH =21; CGFloat imageX =0;
 6  CGFloat imageY =0;
 7  CGFloatimageW = self.bounds.size.width;
 8  CGFloat imageH =self.bounds.size.height-titleH;
 9  self.imageView.frame = CGRectMake(imageX,imageY, imageW, imageH);
10  self.titleLabel.frame = CGRectMake(imageX,imageH, imageW, titleH);
11 }

3、设置文字图片居中

1 self.titleLabel.textAlignment = NSTextAlignmentCenter;
2 self.imageView.contentMode= UIViewContentModeCenter;

4、设置label换行显示

button.titleLabel.numberOfLines = 0;

5、设置尺寸随内容尺寸而定:

1 [btn sizeToFit];

6、让navigationbar的leftItem或rightItem尽量靠近屏幕边缘:

1 // 自定义button---MainTagSubIcon(测试图片名称)
2 UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
3 [button setImage:[UIImage imageNamed:@"MainTagSubIcon"] forState:UIControlStateNormal];
4 // 设置button的尺寸
5 [button sizeToFit];
6 // 设置内边距对应的位置为负数
7 button.contentEdgeInsets = UIEdgeInsetsMake(0, -10, 0, 0);
8 self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];
时间: 2024-10-11 03:20:45

UIButton那些应用细节的相关文章

IOS之UI -- 按钮UIButton的细节

*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } a { color: #4183C4; } a.absent { color: #cc0000; } a.anchor { display: block; padding-left: 30px; margin-left: -30px; cursor: pointer; position: absolute

UIButton细节

1.[UIButtonbuttonWithType:UIButtonTypeCustom] = [[UIButtonalloc] init]; 2.让btn在点击的时候出现闪亮效果btn.showsTouchWhenHighlighted = YES;

第9条:以“类簇模式”隐藏实现细节

类簇模式把实现细节隐藏在一套简单的公共接口(抽象基类)后面.以保持接口简洁,用户无须自己创建子类实例,只需调用基类方法创建即可. 例如:UIButton 的 buttonWithType: 工厂模式是创建类簇的办法之一. OC中的系统框架中普通使用此模式. 大部分collection类都是类簇. 判断实例所属的类型信息: isMemberOfClass:    是否在相同类中,不含子类. isKindOfClass:     判断某对象是否位于类簇(基类和子类)中.

[小细节,大BUG]记录一些小问题引起的大BUG(长期更新....)

[小细节,大BUG]  1. 在不久前,一个朋友出现了这样一个BUG:当UITableView加载cell的时候,自定义的cell,怎么显示,里面的文字总是显示不完全(注意,文字不长).然后,我帮忙给看了下,甚至把在storyBoard中将cell的相关属性都试了下,虽然可以解决,但是效果不理想.最终经过排查,终于发现问题所在:当自定义cell时,因为需要布局子控件,所以他重写了layoutSubviews方法,然而在此方法中没有调用[super layoutSubviews],所以造成了布局混

iOS UIButton 设置图片文字垂直排列

在实际的iOS项目开发中,我们经常需要改变系统的控件的样式,自己定义一个,同样的当我们发现系统自带的某些方法不好使时,我们也会想到重写这个方法. 本文主要记录笔者设置UIButton图片文字垂直排列的方法,最终解决了在图片和文字垂直排列的情况下,如果文字长度变化会导致图片位置变动的问题,对 于此问题网上有比较多的做法,我就不多说了,在此记录这点细节仅为加深印象并方便以后查阅.如有纰漏还请见谅 方案一:通过调整按钮图片和文字的内边距 UIEdgeInsets typedef struct UIEd

iOS开发笔记7:Text、UI交互细节、两个动画效果等

Text主要总结UILabel.UITextField.UITextView.UIMenuController以及UIWebView/WKWebView相关的一些问题. UI细节主要总结界面交互开发中遇到的一些细节问题,包括Masonry部分的问题. 动画介绍最近用到的两个,算是常用级别的,动画这部分之后会专门研究总结下. 最后介绍两个工具及三个Xcode使用设置的问题. 1.Text (1)UILabel显示多行文字并且文字置顶显示 不限制UILabel的高度(宽度需要设置,确定文字何时换行)

UI UIBUTTON

@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); UIButton 常规创建方法 UIButton *btn = [[UIButton alloc]init]; UIButton *btn = [[UIButton alloc] initWithFrame:<#(CGRect)#>]; 常用方法:UIBut

UIButton的最基础用法

UIButton的最基础用法 UIButton (1) 创建显示一个Button      //演示UI中按钮类UIButton使用 //需求: 想要在界面上显示一个按钮 //解决:   使用UIButton按钮类  //<1>创建按钮,一般需要指定按钮的风格 //系统样式的按钮:  UIButtonTypeSystem //如果创建带图片的: 一般选用UIButtonTypeCustom //圆角矩形: ios7不再使用UIButtonTypeRoundedRect //UIButtonTy

UIButton的属性和使用

UIButton的使用 1.创建和显示 文本按钮 UIButtonTypeSystem 图片按钮 UIButtonTypeCustom 系统预定义的按钮 UIButtonTypeContactAdd +号 UIButtonTypeInfoLight  i符号 注意: 按钮创建一般使用buttonWithType UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem]; button.frame = CGRectMake(10