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 来加载图片.

     

     

     

     

     

     

     

     

  • 相关阅读:
    WF4.0 Beta1 自定义跟踪
    WF4.0 Beta1 流程设计器与Activity Designer
    新版本工作流平台的 (二) 权限算法(组织结构部分)
    WF4.0 Beta1 WorkflowInvoker
    WF4.0 基础篇 (十) Collection 集合操作
    WF4.0 基础篇 (十五) TransactionScope 事物容器
    WF4.0 基础篇 (六) 数据的传递 Arguments 参数
    WF4B1 的Procedural Activity 之InvokeMethod , InvokeMethod<T> 使用
    WF4.0 Beta1 异常处理
    WF4.0 Beta1 变量 Variables
  • 原文地址:https://www.cnblogs.com/my_work_blog_space/p/3163377.html
Copyright © 2011-2022 走看看