iOS开发UI技巧篇 -- UIButton

1、 * 默认情况下,当按钮高亮的情况下,图像的颜色会被画深一点,如果这下面的这个属性设置为no, * 那么可以去掉这个功能
高亮的时候不调整图片:button1.adjustsImageWhenHighlighted = NO;
2、/*跟上面的情况一样,默认情况下,当按钮禁用的时候,图像会被画得深一点,设置NO可以取消设置*/

不可用的时候不调整图片:button1.adjustsImageWhenDisabled = NO;

3、关于UIButton,既可以采用setBackgroundImage 来设置底部图片,同时也可以采用  setImage方法;

两者还是有一定区别的;

首先setBackgroundImage,image会随着button的大小而改变,图片自动会拉伸来适应button的大小,这个时候任然可以设置button的title,image不会挡住title;

相反的的setImage,图片不会进行拉伸,原比例的显示在button上,此时再设置title,title将无法显示,因此可以根据需求选中方法;


3.1- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight

这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是不拉伸区域和左边框的宽度,第二个参数是不拉伸区域和上边框的宽度。

第一次用这个函数的时候一直搞不懂为什么只要两个参数就行,至少应该指定左上角和右下角,总共四个参数啊。后来读读文档才明白,只需要两个参数就行了。

参数的意义是,如果参数指定10,5。那么,图片左边10个像素,上边5个像素。不会被拉伸,x坐标为11和一个像素会被横向复制,y坐标为6的一个像素会被纵向复制。注意:只是对一个像素进行复制到一定宽度。


http://blog.csdn.net/zcl369369/article/details/41022041
5、使用UIButton实现相框效果 或者 像UC浏览器中首页上的按钮上面image下面title
相框效果的实现需要是用到UIButton的setImage和setBackgroundImage属性,setBackgroundImage设置白色图片,setImage设置图片,但是如果setImage过大的话依然无法实现该效果,所以这里还要用到EdgeInset  可以看看4、iPhone开发-UIButton setImage的同时也显示title  或者 6 中提到的方式
UC中的效果实现方式也可以仿照4,6中提到的方式,
博主认为 在btn的基础上setImage一下,然后title的设置使用UILable更好一些

6.iOS – UIButton(UIEdgeInsets详解,很详细!!!)/设置button上的文字和图片上下垂直居中对齐
http://www.devba.com/index.php/archives/3589.html
对于UIButton 内边距的设置 看看这个文档
7、
//设置是否能与用户进行交互
    lbl7.userInteractionEnabled = YES;
eg:在超级猜图中 右上角有一个“分数”,由一个img和一个lable组成,我们还可以使用一个btn解决这个问题,但是这样的话就会允许点击(虽然不响应),所以为了达到我们想要的效果,我们可以取消 这个btn和用户的交互功能,也就是 userInteractionEnabled = NO。
当然要实现上述功能还可以设置enable = NO;  button1.adjustsImageWhenDisabled = NO;这样也是可以的
8.UIButton的title默认情况下是白色,一般需要进行设置
9、UIButton获取当前文字,btn.currentTitle。api中提供了一批获取current的属性。虽然NSString answerTitle = [answerBtn titleForState:normal];也可以 
UIButton有很多种状态,它提供了一些便捷属性,可以直接获取当前状态下的文字、文字颜色、图片等
@property(nonatomic,readonly,retain) NSString *currentTitle; 
@property(nonatomic,readonly,retain) UIColor  *currentTitleColor;        
@property(nonatomic,readonly,retain) UIImage  *currentImage;             
@property(nonatomic,readonly,retain) UIImage  *currentBackgroundImage;
---------------------------
10、在超级猜图中,点击answerBtn的时候,optionView中的btn需要先del再重新add,这时候我们可以使用for循环完成
for(UIButton *optionBtn in self.optionView.subviews){[optionBtn removeFromSuperview];}
更简单的方法时: // 让数组中的所有对象都执行removeFromSuperview方法
    [self.answerView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];//数组才能执行此方法

11、btn的文字属性
btn.contentHorizontalAlignment=UIControlContentHorizontalAlignmentLeft ;//设置文字位置,现设为居左,默认的是居中
[btn setTitle:@“title”forState:UIControlStateNormal];// 添加文字
有些时候我们想让UIButton的title居左对齐,我们设置
btn.textLabel.textAlignment = UITextAlignmentLeft
是没有作用的,我们需要设置
btn.contentHorizontalAlignment = UIControlContentHorizonAlignmentLeft;
但是问题又出来,此时文字会紧贴到做边框,我们可以设置
btn.contentEdgeInsets = UIEdgeInsetsMake(0,10, 0, 0);
使文字距离做边框保持10个像素的距离。
=======================================================
设置UIButton上字体的颜色设置UIButton上字体的颜色,不是用:
[btn.titleLabel setTextColor:[UIColorblackColor]];
btn.titleLabel.textColor=[UIColor redColor];
而是用:
[btn setTitleColor:[UIColor blackColor]forState:UIControlStateNormal];
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值