美文网首页
UI基础控件

UI基础控件

作者: 画个完美句号 | 来源:发表于2016-01-30 16:55 被阅读74次

    继承自NSObject:

    UIColor *_color; //颜色

    UIImage *_image;  //图像

    继承自UIView:

    UILabel *_label; //文本展示

    UIImageView *_imageView;  //图像展示

    UIScrollView *_scrollView;  //滚动视图

    继承自UIControl:

    UIButton *_button; //按钮

    UISlider *slider; //滑动条

    UITextField *_textField;  //文本框

    UISegmentedControl *segmentedControl; //分段控件

    一.UILabel:

    UILabel *label = [[UILabel alloc] init];   //UILabel的建立

    UILabel基础设置

    //设置label背景颜色

    label.backgroundColor = [UIColor 选择颜色];

    //设置label位置大小

    label.frame = CGRectMake(x,y,width.height);

    //设置label中显示文字

    label.text = @"hello world";

    //label中显示文字居中

    label.textAlignment = NSTextAlignmentCenter;

    //label中文字行数随文字数量自动改变

    label.numberOfLines = 0;

    //将label添加到父控件中

    [self.view addSubview:label];

    二.UIImageView

    UIImageView建立

    UIImageView *imageView = [[UIImageView alloc] init];

    //设置imageView的位置与大小

    imageView.frame = CGRectMake(x,y,width,height);

    //设置imageView的背景颜色

    imageView.backgroundColor = [UIColor 自己选颜色];

    //加载图片

    imageView.image = [UIImage imageNamed:@"图片名称"];

    //将图片置于控件底部

    imageView.contentMode = UIViewContentModeBottom;

    //添加到父控件中

    [self.view addSubview:imageView];

    三.UIButton

    UIButton建立

    UIButton *btn = [[UIButton alloc] init];

    tag值

    可以通过tag值找到相对于的按钮

    UIButton基本设置

    //设置btn在正常状态下加载的图片

    [btn setImage:[UIImage imageNamed:@"图片名称"] forState:UIControlStateNormal];

    //设置ban在高亮状态下加载图片

    [btn setImage:[UIImage imageNamed:@"图片名称"]forState:UIControlStateHighlighted];

    //设置btn在正常状态下的背景图片

    [btn setBackgroundImage:[UIImage imageNamed:@"图片名称"] forState:UIControlStateNormal];

    //设置btn在高亮状态下的背景图片

    [btn setBackgroundImage:[UIImage imageNamed:@"图片名称"]forState:UIControlStateNormal];

    // 设置btn在正常状态下显示的文字

    [btn setTitle:@"点我啊" forState:UIControlStateNormal];

    // 设置btn在高亮状态下显示的文字

    [btn setTitle:@"神经病" forState:UIControlStateHighlighted];

    // 设置btn在正常状态下文字颜色

    [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

    // 设置btn位置与大小

    btn.frame=CGRectMake(100, 100, 100, 30);

    // 监听事件

    [btn addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];

    // 将btn添加到父控件中

    [self.view addSubview:btn];

    注意点:

    *不能直接修改属性的成员

    正确写法:

    CGRect tempFrame = imageView.frame;

    tempFrame.size = imageView.image.size;

    imageView.frame = tempFrame;

    initWithImage:方法

    利用这个方法创建出来的imageView的尺寸和传入的图片尺寸一样

    修改frame的3种方式

    1.直接使用CGRectMake函数

    imageView.frame = CGRectMake(x,y,width,hight);

    2.利用临时结构体变量

    CGRect tempFrame = imageView.frame;

    tempFrame.origin.x = 修改的尺寸;

    tempFrame.origin.y = 修改的尺寸;

    tempFrame.size.width = 修改的尺寸;

    tempFrame.size.hight = 修改的尺寸;

    imageView.frame = tempFrame;

    3.使用大括号的形式

    imageView.frame = (CGRect){{x,y},{width,hight}};

    UITextField

    UITextField的创建:UITextField *tf = [[UITextField alloc] initWithFrame:CGRectMake(x,y,width,hight)];

    背景颜色:

    TextField.backgroundColor = [UIColor 自己选的颜色];

    添加到父视图:

    [self.window addSubview:textField];

    内存管理:

    textField release]

    输入框的占位符:

    textField.placeholder = @"输入的内容";

    是否可用:

    textField.enabled = YES/NO;

    安全文本输入:

    textField.secureTextEntry = YES;

    外观控制:

    输入框样式:

    textField.borderStyle = UITextBorderStyleNone;

    边框宽度:

    textField.layer.borderWidth = 1;

    边框颜色:

    textField.layer.borderColor = [UIColor lightGrayColor].CGColor;

    切圆角:

    textField.layer.cornerRadius = textField.frame.size.width/2;

    清楚按钮:

    textField.clearButtonMode = UITextFieldViewModeAlways;

    页面间的跳转:

    先创建你要跳转到下一个页面的对象:如 TwoViewController *twoVC = [[twoViewController alloc] init];

    [self presentViewController:twoVC animated:YES completion:^{

    }];

    返回上一个页面:

    [self dismissViewControllerAnimated:YES completion:^{

    }];

    键盘回收:

    必须用到协议,设置代理人,实现方法;

    -(BOOL)textFieldShouldReturn:(UITextField *)textField{

    获取第一响应

    if(textField.tag ==设置的tag值){

    [textField resignFieldResponder];

    [[self.window viewWithTag:下一个tag值] becomeFirstResponder];}

    if(textField.tag ==下一个tag值){

    [textField resignFirstResponder];}

    return YES;

    在输入框将要输入内容时 屏幕上移 

    -(BOOL)textFieldShouldBeginEditing:(UITextField *)textField{

    if(textField.tag == tag值){

    [UIView animateWithDuration:设置时间 animation:^{

    self.window.center = CGPointMake(self.window.center.x,self.window.center.y - 258);

    }];

    }

    return YES;

    }

    输入结束时 屏幕下移

    -(BOOL)textFieldShouldEndEditing:(UITextField *)textField{

    if (textField.tag == 2000) {

    [UIView animateWithDuration:0.3 animations:^{

    self.window.center = CGPointMake(self.window.center.x, self.window.center.y + 258);

    }];

    }

    return YES;

    }

    在两个按钮上设置tag值 点击时让它变成自己想要的颜色

    -(UIButton*)information:(UIButton*)sender {

    if (sender.tag == 1001) {

    NSLog(@"消息");

    sender.backgroundColor = [UIColor cyanColor];

    UIButton *tempButton = [self.view viewWithTag:1002];

    tempButton.backgroundColor = [UIColor whiteColor];

    } else if(sender.tag == 1002){

    NSLog(@"电话");

    sender.backgroundColor = [UIColor cyanColor];

    UIButton *tempButton = [self.view viewWithTag:1001];

    tempButton.backgroundColor = [UIColor whiteColor];

    }

    return sender;

    }

    图片的加载方式

    有缓存   UIImage *image = [UIImage imageNamed:@"图片名"];

    使用场合:图片小 使用频率高

    无缓存

    NSString *name = [[NSBundle mainBundle] pathForResource:@"图片名" ofType:@"jpg"];

    UIImage *image = [UIImage imageWithContentsOfName:name];

    使用场合:图片大 使用频率小

    延迟

    [abc performSelector:@selector(stand:) withObject:@"123" afterDelay:10];

    // 10s后自动调用abc的stand:方法,并且传递@"123"参数

    音频文件的简单播放

    // 创建一个音频文件的URL(URL就是文件路径对象)

    NSURL *url = [[NSBundle mainBundle] URLForResource:@"音频文件名" withExtension:@"音频文件的扩展名"];

    // 创建播放器

    self.player = [AVPlayer playerWithURL:url];

    // 播放

    [self.player play];

    问题:1.系统给的颜色比较少,我们可以通过第三方添加我们想要的颜色吗?

    问题:2.怎么让我们加载的图片在显示器上的尺寸一样?

    问题:3.图片怎么老是被拉伸?

    相关文章

      网友评论

          本文标题:UI基础控件

          本文链接:https://www.haomeiwen.com/subject/odqjkttx.html