美文网首页iOS开发iOS DeveloperiOS开发资料收集区
iOS开发百宝箱---那些年我们忽略过得细节(持续更新)

iOS开发百宝箱---那些年我们忽略过得细节(持续更新)

作者: 断剑 | 来源:发表于2016-10-30 21:36 被阅读462次

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比例,图片的缩放是按照比例的
  1. 不带有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];

相关文章

网友评论

  • 欢欢1206:文采斐然辞藻华美,语言朴实,文笔清新,情感丰富,人物形象饱满,条理清晰,结构层次分明,情节合理,跌宕起伏,描写生动,引人入胜,艺术感染力强,结尾画龙点睛,寓意深刻,发人深思,意味悠长。
    断剑:@欢欢1206 欢欢真大神
  • IT越越:看完博主的文章,我的心情竟是久久不能平复,正如老子所云:大音希声,大象希形。我现在终于明白我缺乏的是什么了,正是博主那种对真理的执着追求和博主那种对理想的艰苦实践所产生的厚重感。面对博主的文章,我震惊得几乎不能动弹了,博主那种裂纸欲出的大手笔,竟使我忍不住一次次的翻开博主的文章,每看一次,赞赏之情就激长数分,我总在想,是否有神灵活在它灵秀的外表下,以至能使人三月不知肉味,使人有余音穿梁,三日不绝的感受。博主,你写得实在是太好了。我唯一能做的,就只有把这个文章顶上去这件事了。
  • MrCat________:看完博主的文章,我的心情竟是久久不能平复,正如老子所云:大音希声,大象希形。我现在终于明白我缺乏的是什么了,正是博主那种对真理的执着追求和博主那种对理想的艰苦实践所产生的厚重感。面对博主的文章,我震惊得几乎不能动弹了,博主那种裂纸欲出的大手笔,竟使我忍不住一次次的翻开博主的文章,每看一次,赞赏之情就激长数分,我总在想,是否有神灵活在它灵秀的外表下,以至能使人三月不知肉味,使人有余音穿梁,三日不绝的感受。博主,你写得实在是太好了。我唯一能做的,就只有把这个文章顶上去这件事了。
    断剑:@浅若丿清风 闻君一席话,胜读十年书。

本文标题:iOS开发百宝箱---那些年我们忽略过得细节(持续更新)

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