zoukankan      html  css  js  c++  java
  • iOS阶段学习第27天笔记(UIButton-UIImageView的介绍)

    iOS学习(UI)知识点整理

    一、关于UIButton的介绍

    1)概念:UIButton 是一种常用的控件,通过点击触发相应的功能

    2)UIButton 的几种常用的状态
            1、UIControlStateNormal  正常状态
            2、UIControlStateHighlighted 高亮状态
            3、UIControlStateSelected 选中状态  -> 当button的selected设置成yes之后才能触发

    3)UIButton常用的几种事件
          1、UIControlEventTouchUpInside  按钮按下并抬起事件
          2、UIControlEventTouchDown   按钮按下事件
          3、UIControlEventTouchDownRepeat 按钮多次点击触发事件

    4)UIButton 初始化实例代码

     1 UIButton *button = [[UIButton alloc] init];
     2 button.frame = CGRectMake(20, 50, 50 , 50);
     3 button.backgroundColor = [UIColor clearColor];
     4 [button setTitle:@"按钮1 正常状态" forState:UIControlStateNormal];
     5 [button setTitle:@"按钮1 高亮状态" forState:UIControlStateHighlighted];
     6 [button setTitle:@"按钮1 选中状态" forState:UIControlStateSelected];
     7 
     8 //按钮点击时触发事件
     9 [button addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside];
    10 //按钮按下后触发事件
    11 [button addTarget:self action:@selector(buttonTappedDown:) forControlEvents:UIControlEventTouchDown];
    12 //按钮双击触发事件
    13 [button addTarget:self action:@selector(buttonTappedDown:) forControlEvents:UIControlEventTouchDownRepeat];
    14 //设置按钮高亮状态下的字体颜色
    15 [button setTitleColor:[UIColor lightGrayColor] forState:UIControlStateHighlighted];
    16 //button字体变为35号加粗的字体
    17 button.titleLabel.font = [UIFont boldSystemFontOfSize:35];
    18 //设置圆角    
    19 button.layer.cornerRadius = 5.f;
    20 //设置边框宽度
    21 button.layer.borderWidth = 2.1;
    22 //设置边框颜色
    23 button.layer.borderColor = [UIColor lightGrayColor].CGColor;
    24  //设置按钮背景图   
    25 UIImage *imageNormal = [UIImage imageNamed:@"camera"];
    26 //设置imageNormal为按钮的正常情况的图片
    27 [button setImage:imageNormal forState:UIControlStateNormal];
    28     
    29 UIImage *imageHightLight = [UIImage imageNamed:@"camera2"];
    30 //设置imageHightLight为按钮的高亮情况的图片
    31 [button setImage:imageHightLight forState:UIControlStateHighlighted];
    32 //当button设置了图片的时候 并且没有设置高亮状态下得图片,取消高亮状态, 默认是Yes
    33 button.adjustsImageWhenHighlighted = YES;    
    34 [self.window addSubview:button];

     
    5)防止按钮多次点击重复提交数据的实例代码

     1 [button addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside]; 
     3 - (void)buttonTapped:(UIButton *)button
     4 {
     5     //设置按钮不可点击
     6     button.userInteractionEnabled = NO;  
     8     //延迟执行方法 防止按钮被快速点击或者不希望点击造成错误
     9     [self performSelector:@selector(delayMethod:) withObject:button afterDelay:1]; 
    11 }
    12 
    13 //延迟方法->设置按钮为可点击状态
    14 - (void)delayMethod:(UIButton *)button
    15 {
    16     button.userInteractionEnabled = YES;    
    17 }

    二、关于UIImageView的介绍

    1)概念:UIImageView 是iOS中专门用于展示图片的控件

    2)UIImageView 初始化 实例代码

     1     UIImageView *imageView = [[UIImageView alloc] init];
     2     imageView.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.width);
     3     imageView.backgroundColor = [UIColor whiteColor];
     4     imageView.center = self.view.center;
     5 
     6     //tag设置控件的唯一标识,值不能重复
     7     imageView.tag = 100;
     8 
     9     //UIImageView的 clipsToBounds属性,设置为yes的时候超出部分,不予以显示
    10     imageView.clipsToBounds = YES;
    11 
    12     //读取一张图片
    13     UIImage *image = [UIImage imageNamed:@"icon"];
    14     imageView.image = image;
    15 
    16     //设置图片展示模式
    17     imageView.contentMode = UIViewContentModeScaleAspectFill;
    18 
    19     //打开imageview的用户交互 注:要实现图片点击事件此属性必须设置为YES
    20     imageView.userInteractionEnabled = YES;
    21     [self.view addSubview:imageView];
    22 
    23     //为UIImageView添加点击事件  
    24     UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self 
    action:@selector(imageViewTapped:)];
    25 [imageView addGestureRecognizer:tap];

     
    3)UI_ImageView中常用的几种填充模式
       1、UIViewContentModeScaleToFill  拉伸image使其充满UIImageView
       2、UIViewContentModeScaleAspectFill 拉伸image使其不变形,并且充满UIImageView
       3、UIViewContentModeScaleAspectFit 拉伸imgage使其不变形,并且完全显示在UIImageView中

    4)UITapGestureRecognizer  除了可以给UI_ImageView添加点击方法外还可以给其他控件添加点击方法
         如:UI_Lable、UI_View...等

    5)iOS中获取图片的三种方法
     方法一: 

    1 //把图片对象加载到内存中
    2 UIImage *image1 = [UIImage imageNamed:@"camera"];
    3 CGSize size = image1.size;
    4 NSLog(@"size.w %f   size.h %f",size.width ,size.height);
    5 //如果图片的格式是png,则后缀名可以省略,其他格式不能省略
    6 UIImage *image2 = [UIImage imageNamed:@"icon.jpeg"];

    方法二: 

    //使用场景:读取大图片,比较占内存的,需要及时释放的图片要用这种方法
     //读取icon.jpeg
    NSString *imagePath3 = [[NSBundle mainBundle] pathForResource:@"icon" ofType:@"jpeg"];
    UIImage *image3 = [[UIImage alloc] initWithContentsOfFile:imagePath3];
    
    NSString *imagePath3_1 = [[NSBundle mainBundle] pathForResource:@"icon.jpeg" ofType:nil];
    UIImage *image3_1 = [[UIImage alloc] initWithContentsOfFile:imagePath3_1];

    方法三:

    1 NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"icon" ofType:@"jpeg"];
    2 
    3  UIImage *image4 = [UIImage imageWithContentsOfFile:imagePath];
  • 相关阅读:
    【Solr】新建core后,启动服务访问web报错 HTTP Status 503
    【Tomcat】tomcat报连接超时错误
    【Tomcat】tomcat报错 removeGeneratedClassFiles failed
    【MongoDB】MongoDb的“not master and slaveok=false”错误及解决方法
    【Solr】 solr对拼音搜索和拼音首字母搜索的支持
    【Junit】The import org.junit.Test conflicts with a type defined in the same file报错
    maven的pom.xml文件报错问题
    ubuntu卸载virtualbox
    ClassNotFoundException: INameEnvironment
    详解为什么32位系统只能用4G内存.
  • 原文地址:https://www.cnblogs.com/ChinaKingKong/p/4683503.html
Copyright © 2011-2022 走看看