文档章节

UIButton的一些技巧

幽默的老司机
 幽默的老司机
发布于 2015/09/29 17:14
字数 492
阅读 108
收藏 0
1.预置按钮类型

  sdk提供了5个预置按钮类型:Detail Disclosure,Info Light,Info Dark,Contact Add,Rounded Rectangle。它们添加到sdk中首先是为了方便苹果公司自己。

  构造方式:[UIButton buttonWithType:UIButtonTypeContactAdd];

2.显示系统私有UIButton风格

     指定 值为100 以上的UIButton的buttonWithType可以得到非公开的按钮风格,像红色按钮,黑色按钮,箭头返回按钮等。

     对于某种风格,可以用[button setTintColor:[UIColor blueColor]];来改变按钮颜色。
     参考 
     http://zhaohaiyang.blog.51cto.com/2056753/756082

3.图片和文字环绕

   UIButtonTypeCustom按钮可以设置title。

   若置title于图像上面时,可使用setBackgroundImage;

   若置title于图像右边时,可使用setImage,且要设置frame宽度大于图像,以能显示出title文字。

   设置titleEdgeInsets可实现文字到图片下方,不过要经过一翻计算。

   setImage的图的Z坐标是最高的。

4.光晕效果

   button.showsTouchWhenHighlighted=YES;点击时的闪光效果会被前景图片遮住中间部分;

   Shows Touch On Highlight (高亮)光晕的大小是55x55像素,大于40x40像素的按钮不能使用该视觉效果。

5.指定目标函数传递的参数问题
  例如 
   [button addTarget:self action:@selector(tableView:accessoryButtonTappedForRowWithIndexPath:)   forControlEvents:UIControlEventTouchUpInside];,

  在执行时,传递给tableView函数的参数类型分别是UIButton类型和UITouchesEvent类型。即不论函数原型是什么,button实际传递的参数类型是固定的。

6.点击测试UIButton响应UIControlEventTouchUpInside事件时,响应点超出了它button的范围。

7.在UIButton中addSubview的问题

   UIView的userInteractionEnabled值默认为YES,必须设置UIButton所有的subview的userInteractionEnabled为NO,才能让UIButton正常响应点击。

   但是如果设置了UIView的setUserInteractionEnabled为NO,其子view都将得不到响应。

8.处理双击问题

   [button addTarget:self action:@selector(onTouchUpInside:withEvent:) forControlEvents:UIControlEventTouchUpInside];
   -(void)onTouchUpInside:(id)sender withEvent:(UIEvent*)event 
{
    UITouch* touch = [[event allTouches] anyObject];
    NSLog(@"onTouchUpInside tagCount:%d",touch.tapCount);
    //判断点击次数
    if (touch.tapCount == 1) 
    {

       //todo
    }
}


© 著作权归作者所有

幽默的老司机

幽默的老司机

粉丝 3
博文 27
码字总数 3808
作品 3
昌平
程序员
私信 提问
iOS小技巧---改变uisearchbar中的cancel按钮的文字、取消clearButton

#pragma mark searchBar开始输入文字时 //汉化取消按钮 - (void)searchBarTextDidBeginEditing:(UISearchBar )searchBar{ searchBar.showsCancelButton = YES; if ([[[UIDevice currentDevi......

夕阳_jhe
2015/04/15
321
0
UIImageView与UIButton

应用场合 UIImageView主要用在只显示图片,没有点击事件的情况并且处理图片更加专业,动画例子: NSMutableArray *images = [NSMutableArray array]; for (int i=0; i<sum; i++) { NSBundle ...

天边那束阳光
2014/10/01
2.2K
0
用视图上移解决UITextField/UITextView被键盘遮盖问题

先看看UILabel/UITextField/UITextView的区别: UILabel 显示的文本只读,无法编辑,可以根据文字个数自动换行; UITextField 可编辑本文,但是无法换行,只能在一行显示;当点击键盘上的ret...

yoyoso
2015/03/18
564
0
【转载】NGUI UILabel 文字破碎

项目使用NGUI,最近碰到 Loading界面的提示文字破碎的Bug。 参考了以下文章 转自http://blog.csdn.net/huutu http://www.liveslives.com 下面先来了解一下为什么会出现这种问题。 需要了解的...

linda012518
2018/05/09
0
0
用UITextView撸一个顺畅的评论输入框

对比UITextField 继承关系: UITextField继承自UIControl,UITextView继承自UIScrollView; 输入行数 UITextView支持多行输入,可以滑屏垂直滚动,UITextField仅支持单行输入 Placeholder UI...

STzen
2018/05/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Podman 使用指南

> 原文链接:Podman 使用指南 Podman 原来是 CRI-O 项目的一部分,后来被分离成一个单独的项目叫 libpod。Podman 的使用体验和 Docker 类似,不同的是 Podman 没有 daemon。以前使用 Docker...

米开朗基杨
今天
6
0
拯救 项目经理个人时间的5个技巧

优秀的项目经理都有一个共同点,那就是良好的时间管理能力。专业的项目经理会确保他们的时间投入富有成效,尽可能避免时间浪费。 时间管理叫做GTD,即Getting Things Done——“把事情做完”...

Airship
今天
7
0
LNMP环境介绍,Mariadb安装,服务管理,mariadb安装3

LNMP环境介绍 Nginx 处理的请求有两种,分为 静态与动态 图片,js,css,视频,音频,flash 等都是静态请求,这些数据都不是保存在数据库里面的 动态请求一般来说,需要的数据是在数据库里面...

doomcat
今天
2
0
前端技术之:Prisma Demo服务部署过程记录

安装前提条件: 1、已经安装了docker运行环境 2、以下命令执行记录发生在MackBook环境 3、已经安装了PostgreSQL(我使用的是11版本) 4、Node开发运行环境可以正常工作 首先需要通过Node包管...

popgis
今天
7
0
数组和链表

数组 链表 技巧一:掌握链表,想轻松写出正确的链表代码,需要理解指针获引用的含义: 对指针的理解,记住下面的这句话就可以了: 将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指...

code-ortaerc
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部