UIlabel
- UILabel建立UILabel *label=[[UILabel alloc] init];
- UILabel基本设置
// 设置label背景色
label.backgroundColor=[UIColor redColor];
// 设置label位置大小
label.frame=CGRectMake(100, 100, 100, 300);
// 设置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];
- UIImageView基本设置
// 设置imageView的位置与大小 - imageView.frame=CGRectMake(50, 100,300, 300);
- // 设置imageView的背景颜色
- imageView.backgroundColor=[UIColor redColor];
- // 加载图片
- imageView.image=[UIImage imageNamed:@"图片名称"];
- // 将图片置于控件底部
- imageView.contentMode=UIViewContentModeBottom;
- // 添加到父控件中
- [self.view addSubview:imageView];
- contentMode属性
- 带有scale单词的:图片有可能会拉伸
- UIViewContentModeScaleToFill
- 将图片拉伸至填充整个imageView
- 图片显示的尺寸跟imageView的尺寸是一样的
- 带有aspect单词的:保持图片原来的宽高比
- UIViewContentModeScaleAspectFit
- : 保证刚好能看到图片的全部
- UIViewContentModeScaleAspectFill
- :拉伸至图片的宽度或者高度跟imageView一样
- UIViewContentModeScaleToFill
- 没有scale单词的:图片绝对不会被拉伸,保持图片的原尺寸
- UIViewContentModeCenter
- UIViewContentModeTop
- UIViewContentModeBottom
- UIViewContentModeLeft
- UIViewContentModeRight
- UIViewContentModeTopLeft
- UIViewContentModeTopRight
- UIViewContentModeBottomLeft
- UIViewContentModeBottomRight
UIButton
- UIButton建立UIButton *btn=[[UIButton alloc] init];
- UIButton基本设置 // 设置btn在正常状况下加载的图片
- [btn setImage:[UIImage imageNamed:@"图片名称"] forState:UIControlStateNormal];
- // 设置btn在高亮状态下加载的图片
- [btn setImage:[UIImage imageNamed:@"图片名称" ] forState:UIControlStateHighlighted];
- // 设置btn在正常状态下的背景图片
- [btn setBackgroundImage:[UIImage imageNamed:@"图片名称" ] forState:UIControlStateNormal];
- // 设置btn在高亮状态下的背景图片
- [btn setBackgroundImage:[UIImage imageNamed:@"图片名称"] forState:UIControlStateHighlighted];
- // 设置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];
- 注意点
- 不能直接修改:OC对象的结构体属性的成员
- 下面的写法是错误的
imageView.frame.size = imageView.image.size;
- 正确写法
CGRect tempFrame = imageView.frame;
tempFrame.size = imageView.image.size;
imageView.frame = tempFrame;
- initWithImage:方法
- 利用这个方法创建出来的imageView的尺寸和传入的图片尺寸一样
- 修改frame的3种方式
- 直接使用CGRectMake函数
imageView.frame = CGRectMake(100, 100, 200, 200);
- 利用临时结构体变量
CGRect tempFrame = imageView.frame;
tempFrame.origin.x = 100;
tempFrame.origin.y = 100;
tempFrame.size.width = 200;
tempFrame.size.height = 200;
imageView.frame = tempFrame;
- 使用大括号{}形式
imageView.frame = (CGRect){{100, 100}, {200, 200}};
- 抽取重复代码
- 将相同代码放到一个新的方法中
- 不用的东西就变成方法的参数
- 图片的加载方式
- 有缓存UIImage *image = [UIImage imageNamed:@"图片名"];
- 使用场合:图片比较小、使用频率较高
- 建议把需要缓存的图片直接放到Images.xcassets
- 无缓存NSString *file = [[NSBundle mainBundle] pathForResource:@"图片名" ofType:@"图片的扩展名"];
- UIImage *image = [UIImage imageWithContentsOfFile:@"图片文件的全路径"];
- 使用场合:图片比较大、使用频率较小
- 不需要缓存的图片不能放在Images.xcassets
- 放在Images.xcassets里面的图片,只能通过图片名去加载图片
- 有缓存UIImage *image = [UIImage imageNamed:@"图片名"];
- 延迟做一些事情
[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];