iOS-个人整理03 - UIButton按钮

一、UIButton

Button是最常用的控件之一,属性也比较多,下面代码创建了一个系统样式的myButton 和一个自定义的myButtonCus,点击myButtonCus按钮,按钮的图案会变化,并会在屏幕中间产生一个UIImageView,展示按钮的图案。

添加一些新内容

ios 去除按钮的按下效果(阴影)

Button.adjustsImageWhenHighlighted = NO;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
  
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];  
    // Override point for customization after application launch.  
    self.window.backgroundColor = [UIColor whiteColor];  
    [self.window makeKeyAndVisible];  
      
      
    //button有自己的便利初始化,设置Button的样式  
    UIButton *myButton = [UIButton buttonWithType:UIButtonTypeSystem];  
      
    //button的样式,如果要自己设置样式,选择Custom  
    // UIButtonTypeCustom = 0, 自定义风格  
    // UIButtonTypeRoundedRect = UIButtonTypeSystem, 圆角矩形  
    // UIButtonTypeDetailDisclosure, 蓝色小箭头按钮,主要做详细说明用  
    // UIButtonTypeInfoLight, 亮色感叹号  
    // UIButtonTypeInfoDark, 暗色感叹号  
    // UIButtonTypeContactAdd, 十字加号按钮  
  
      
    //常态下的标题,Button在不同状态下可以设置不同标题,如长按,取消等状态  
    [myButton setTitle:@"button" forState:UIControlStateNormal];  
    [myButton setTitle:@"yes" forState:UIControlStateSelected];  
  
    //[myButton setTitle:@"no" forState:UIControlStateReserved];  
    //[myButton setTitle:@"Application" forState:UIControlStateApplication];  
    //[myButton setTitle:@"Highlighted" forState:UIControlStateHighlighted];  
      
    //设置按钮大小,因为初始化和其他控件不同,frame设置容易遗漏  
    myButton.frame = CGRectMake(50, 50, 100, 100);  
      
    //添加点击事件  
    //Target�:动作的执行目标(按钮的action事件写在哪个类里)  
    //action:按钮的回调方法,如果方法有参数,那么参数一定是按钮本身  
    //events:哪种触摸方式  
    //如果self写在对象方法中,也就是OC中的减号方法中,self就代表类对象,如果写在类方法中,就代表本类  
      
    //UIButton的触发类型  
//    UIControlEventTouchDown  
//    单点触摸按下事件:用户点触屏幕,或者又有新手指落下的时候。  
      
//    UIControlEventTouchDownRepeat  
//    多点触摸按下事件,点触计数大于1:用户按下第二、三、或第四根手指的时候。  
//      
//    UIControlEventTouchDragInside  
//    当一次触摸在控件窗口内拖动时。  
//      
//    UIControlEventTouchDragOutside  
//    当一次触摸在控件窗口之外拖动时。  
//      
//    UIControlEventTouchDragEnter  
//    当一次触摸从控件窗口之外拖动到内部时。  
//      
//    UIControlEventTouchDragExit  
//    当一次触摸从控件窗口内部拖动到外部时。  
//      
//    UIControlEventTouchUpInside  
//    所有在控件之内触摸抬起事件。  
//      
//    UIControlEventTouchUpOutside  
//    所有在控件之外触摸抬起事件(点触必须开始与控件内部才会发送通知)。  
//      
//    UIControlEventTouchCancel  
//    所有触摸取消事件,即一次触摸因为放上了太多手指而被取消,或者被上锁或者电话呼叫打断。  
//      
//    UIControlEventTouchChanged  
//    当控件的值发生改变时,发送通知。用于滑块、分段控件、以及其他取值的控件。你可以配置滑块控件何时发送通知,在滑块被放下时发送,或者在被拖动时发送。  
      
    //添加一个单击的触发类型  
    [myButton addTarget:self action:@selector(butAction:) forControlEvents:UIControlEventTouchUpInside];  
    [myButton setBackgroundColor:[UIColor yellowColor]];  
      
    [self.window addSubview:myButton];  
      
   //设置UIButton上字体的颜色设置UIButton上字体的颜色,不是用:
   [btn.titleLabel setTextColor:[UIColorblackColor]];
    btn.titleLabel.textColor=[UIColor redColor];
   //而是用:
   [btn setTitleColor:[UIColor blackColor]forState:UIControlStateNormal];

    //自定义 custom按钮  
    UIButton *myButtonCus = [UIButton buttonWithType:UIButtonTypeCustom];  
    //设置frame  
    myButtonCus.frame = CGRectMake(100, 100, 100, 100);  
    //为按钮添加图片  
    [myButtonCus setImage:[UIImage imageNamed:@"btnImage1.jpg"] forState:UIControlStateNormal];  
    [myButtonCus setImage:[UIImage imageNamed:@"btnImage2.jpg"] forState:UIControlStateHighlighted];  
    [myButtonCus addTarget:self action:@selector(butAction:) forControlEvents:UIControlEventTouchUpInside];  
      
    [self.window addSubview:myButtonCus];  
      
    //定义一个UIImageView 点击按钮时显示按钮上图片  
    UIImageView *btnImageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 200, 200)];  
  
    btnImageView.center = self.window.center;  
    [self.window addSubview:btnImageView];  
      
    btnImageView.tag = 1001;  
      
    return YES;  
}  
  
-(void)butAction:(UIButton*)sender  
{  
    //使button被选择的状态,点击一次就设置成相反的  
    sender.selected = !sender.selected;  
  
    //得到button上面的图片  
    UIImage *btnImage = [sender imageForState:UIControlStateNormal];  
    if (sender.selected) {  
        btnImage = [sender imageForState:UIControlStateNormal];  
    }  
    else  
    {  
        btnImage = [sender imageForState:UIControlStateHighlighted];  
    }  
    //根据tag得到View,使用UIView强制转换成UIImageView  
    UIImageView *view = (UIImageView*)[self.window viewWithTag:1001];  
    [view setImage:btnImage];  
}  

运行效果:
点击中间的按钮,也就是暴漫图片,屏幕中间会出现一个大图,展示按钮上的图片

大部分的属性和方法都写在代码里面,都有注释,拷贝代码运行进行尝试就好

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容