IOS开发之UI设计---视图交互与事件(UIButton,UIImage,UIImageView,UIController)

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(30250100100)];

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

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

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

    CGSize size = image.size;

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

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

    [imgView setImage:image];

    [self.window addSubview:imgView];

    [imgView release];

    imgView = nil;

 

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

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

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

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

    NSData *imgData = [NSData dataWithContentsOfFile:path];

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

    UIImage *image1 = [UIImage imageWithData:imgData];

    CGSize size1 = image1.size;

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

    [imgView1 setImage:image1];

    

    [self.window addSubview:imgView1];

    [imgView1 release];

    imgView1 = nil;

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

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

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章