1.UILabel
-
文字截取显示模式
@property(nonatomic) NSLineBreakMode lineBreakMode; // default is NSLineBreakByTruncatingTail. used for single and multiple lines of text
NSLineBreakMode | 显示样式 |
---|---|
NSLineBreakByWordWrapping | 单词包裹,以单词为单位显示,后面的部分省略不显示;换行时以一个单词换行 |
NSLineBreakByCharWrapping | 字符包裹,以字符为单位显示,后面的部分省略不显示;换行时以一个字符换行 |
NSLineBreakByClipping | 裁剪超出部分的内容 |
NSLineBreakByTruncatingHead | 头部文字以……方式省略,显示尾部文字内容 |
NSLineBreakByTruncatingTail | 尾部文字以……方式省略,显示头部文字内容 |
NSLineBreakByTruncatingMiddle | 中间文字以……方式省略,显示头部、尾部文字内容 |
2.UIImageView
-
1.图片填充方式的设置
@property(nonatomic) UIViewContentMode contentMode; // default is UIViewContentModeScaleToFill
UIViewContentMode | 填充模式 |
---|---|
UIViewContentModeScaleToFill | 默认,将图片按照imageView区域进行拉伸,经常会导致图片变形 |
UIViewContentModeScaleAspectFill | 图片宽高比不变,等比例拉伸,填充整个imageView区域,可能会导致部分图像超出区域而不显示 |
UIViewContentModeScaleAspectFit | 图片宽高比不变,全部显示在imageView区域中,可能会导致imageView存在空白区域 |
UIViewContentModeCenter | 图片中间部分显示在imageView区域中 |
UIViewContentModeTop | 图片顶部部分显示在imageView区域中 |
UIViewContentModeBottom | 图片底部部分显示在imageView区域中 |
UIViewContentModeLeft | 图片左侧部分显示在imageView区域中 |
UIViewContentModeRight | 图片右侧部分显示在imageView区域中 |
UIViewContentModeTopLeft | 图片左上部分显示在imageView区域中 |
UIViewContentModeTopRight | 图片右上部分显示在imageView区域中 |
UIViewContentModeBottomLeft | 图片左下部分显示在imageView区域中 |
UIViewContentModeBottomRight | 图片右下部分显示在imageView区域中 |
UIViewContentModeRedraw | 重新绘制 |
- 注意:
- 带有Scale,标明图片有可能被拉伸或压缩
- Aspect比例,图片的缩放是按照比例的
- 不带有Scale,标明图片不可能被拉伸或压缩,当图片尺寸超出imageView尺寸时,只有部分图片会显示出来
- 使用该属性的时候通常要与
clipsToBounds
属性一起使用,否则可能会导致界面布局混乱(超出部分的图片覆盖其他控件)
-
2.忽略了的imageView设置frame方式
- 通过frame的方式设置
- 设置图片,通过图片自身的frame来进行设置(此种方式容易忽略)
//方式一:最常规的设置方式
UIImageView * imageView = [[UIImageView alloc]init];
imageView.frame = CGRectMake(10, 10, 100, 100);
//方式二:根据图片的大小进行设置
UIImageView *imageView = [[UIImageView alloc] init];
UIImage *image = [UIImage imageNamed:@"1"];
imageView.frame = CGRectMake(100, 100, image.size.width, image.size.height);
imageView.image = image;
//方式三:初始化时默认设置 initWithImage:控件的尺寸===图片的尺寸
// 创建一个UIimageview对象
// 注意: initWithImage 默认就有尺寸--->图片的尺寸
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"1"]];
// 通过改变center,改变位置
imageView.center = CGPointMake(200, 150);
-
3.通过文件名加载项目中图片资源的两种方式
+ (nullable UIImage *)imageNamed:(NSString *)name;
+ (nullable UIImage *)imageWithContentsOfFile:(NSString *)path;
我们在项目中加载图片通常会有两种方式
-
将图片放到项目的Assets.xcassets中
-
将图片直接拖到项目中(项目的某一个文件夹中)
-
** 注意 **
-
Assets.xcassets打包之后会变成Assets.car,我们
拿不到
内部图片的路径,因此只能通过imageNamed:来加载图片,不能通过imageWithContentsOfFile:来加载图片 -
直接拖到项目中的图片
可以
拿到路径,能通过imageNamed:来加载图片,也能通过imageWithContentsOfFile:来加载图片
-
4.UIImageView简单毛玻璃效果的实现
-
4.1.UIToolBar
我们利用UIToolBar这个类可以简单粗暴的设置毛玻璃的效果
//1.创建UIImageView
UIImageView * imageView = [[UIImageView alloc]initWithFrame:CGRectMake(20, 100, 260, 260)];
imageView.image = [UIImage imageNamed:@"IMG_20160319_164125"];
[self.view addSubview:imageView];
//2.创建UIToolbar
UIToolbar * toolBar = [[UIToolbar alloc]initWithFrame:imageView.frame];
//3.设置UIToolbar的样式
toolBar.barStyle = UIBarStyleBlack;
//4.调整UIToolbar的透明度来达到想要的效果
toolBar.alpha = 0.9;
//5.将UIToolbar覆盖(添加)到UIImageView上面
[self.view addSubview:toolBar];
-
4.2UIVisualEffectView
UIVisualEffectView是iOS8引入的创建毛玻璃(blur)的接口。
UIImageView * imageView = [[UIImageView alloc]initWithFrame:CGRectMake(20, 100, 260, 260)];
imageView.image = [UIImage imageNamed:@"IMG_20160319_164125"];
[self.view addSubview:imageView];
UIBlurEffect * blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
UIVisualEffectView * effectView = [[UIVisualEffectView alloc]initWithEffect:blur];
effectView.frame = imageView.bounds;
[imageView addSubview:effectView];
网友评论