zoukankan      html  css  js  c++  java
  • IOS开发之UI设计---视图交互与事件(UIButton,UIImage,UIImageView,UIController)

     沙盒  : IOS给每一个App分配一定的独立的存储空间

    //获取沙盒路径

    NSString *path = NSHomeDirectory();

     

    如上图所示的文件夹,即为沙盒.沙盒空间彼此独立,数据私有

     

    异步:可以同时进行多个事件的进程(非阻塞).

     

    异步事件模型:程序无法知道用户何时出发应用的监听机制,用户一旦触发,

    应用立即做出响应.

     

    UIButton : (UIControl : UIView)

     

    + (id)buttonWithType:(UIButtonType)buttonType;

    - (void)setFrame:(CGRect)rect;

    - (void)setTitle:(NSString )title forState:UIControlState)state;            

             // default is nil. title is assumed to be single line

    - (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;

    //target 添加事件的对象

    //action 添加事件的响应方法

    //controlEvents  事件的类型

    //SEL类型:IOS系统会给每一个方法分配一个唯一的id,方法名一样,id也一样;

    //@selector(click) 方法选择器,将方法名click转化为id,类似C中的函数指针

    ControlEvents   &    ControlState

    ControlEvents未触发,ControlState为normal状态,ControlEvents 触发时,ControlState才会发生改变.

     

    btn.tag = (NSInteger)tag;//btn按钮设置一个标签

     

     

    同步:一个事件的进程未完成,不能进行下一个事件的进程(阻塞).

     

    UIImage : UIObject

    UIImageView : UIView

     

    UIImage 图片数据的抽象类

    UIImageView 展示UIImage的类,用于存放图片信息的容器.

    Method 1:通过文件名加载图片

    //从沙盒中读取图片

    UIImage *image = [UIImage imageNamed:@"1.png"];

    //实例化一个存放图片的UIImageView容器

        //UIImageView *imgView = [[UIImageView alloc]initWithFrame:CGRectMake(30, 250, 100, 100)];

    //---------------------

      //图片容器自适应   防止图片失真

        UIImageView *imgView = [[UIImageView alloc]initWithFrame:CGRectZero];

        CGSize size = image.size;

      [imgView setFrame:CGRectMake(200, 250, size.width, size.height)];

        //加载图片数据到图片容器

        [imgView setImage:image];

        [self.window addSubview:imgView];

        [imgView release];

        imgView = nil;

     

    Method 2:使用二进制数据流加载图片

      //获取沙盒中文件的路径

        NSString *path = [[NSBundlemainBundle] pathForResource:@"2"ofType:@"png"];

        //获取图片文件的二进制数据流对象

        NSData *imgData = [NSData dataWithContentsOfFile:path];

        //将图片的二进制数据转化为UIImage

        UIImage *image1 = [UIImage imageWithData:imgData];

        CGSize size1 = image1.size;

        UIImageView *imgView1 = [[UIImageView alloc]initWithFrame:CGRectMake(100, 250, size1.width, size1.height)];

        [imgView1 setImage:image1];

        

        [self.window addSubview:imgView1];

        [imgView1 release];

        imgView1 = nil;

     从代码优化的角度,使用 + (UIImage *)imageWithName:(NSString *)filePath 会占用系统的缓存空间,所以在加载图片的时候,推荐使用

    + (UIImage *)imageWithData : (NSData *)data 来加载图片.

     

     

     

     

     

     

     

     

  • 相关阅读:
    通过secureCRT连接虚拟机VMware workstation问题记录
    redis 数据类型
    windows下redis安装及配置
    js获取response头信息
    flask token认证
    IDEA 双击只选择了一个变量的某部分单词
    IDEA 对spring boot Maven 项目打 Jar 包
    ElasticSearch 7.3.0 查询、修改、删除 文档操作
    ElasticSearch Kibana 创建索引,删除索引,查看索引配置
    elasticsearch-analysis-ik windows 环境 IK 中文分词器 的 下载 和 安装
  • 原文地址:https://www.cnblogs.com/my_work_blog_space/p/3163377.html
Copyright © 2011-2022 走看看