一句话笔记(14)

一句话笔记,某段时间内遇到或看到的某个可记录的点。 2016-12-5

  • 1、图片背景的气泡的做法
  • 2、获取 NSURL 字符串后的参数
  • 3、BOOL / bool / Boolean 的区别
1、图片背景的气泡的做法
  • 准备一张气泡效果的背景图,然后将这个气泡图做成一个layer实例,并且通过contentCenter或者contentRect拉伸至我们需要展示的UIImageView大小
  • 将做好的layer实例赋给UIImageView
  • 再将imageview赋上图片就行了
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 100, 150)];
CAShapeLayer *layer = [CAShapeLayer layer];

layer.frame = imageView.bounds;
layer.contents = (id)[UIImage imageNamed:@"chat"].CGImage;
layer.contentsCenter = CGRectMake(0.5, 0.5, 0.1, 0.1);
layer.contentsScale = [UIScreen mainScreen].scale;

imageView.layer.mask  = layer;
imageView.layer.frame = imageView.frame;
imageView.image = [UIImage imageNamed:@"testImage"];

[self.view addSubview: imageView];

源自: iOS 微信聊天消息的图片气泡实现

2、获取 NSURL 字符串后的参数

情景:有时我们需要快速获取一段 URL 字符串后的参数值
第一反应做法: 通过截取字符串,来判断,但真的感觉有点龊
寻找苹果API : NSURLComponents、NSURLQueryItem, 然后类似下面这样就解决了。

    NSString *urlString = @"https://www.example.com?name=qiuqiu&id=001";
    NSURLComponents *components = [NSURLComponents componentsWithString:urlString];
    [components.queryItems enumerateObjectsUsingBlock:^(NSURLQueryItem * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        NSLog(@"%@ == %@",obj.name,obj.value);
    }];
    // name == qiuqiu
    // id == 001

来源我们组长的 开发获取NSURL字符串的参数

3、BOOL / bool / Boolean 的区别
[BOOL / bool / Boolean / NSCFBoolean 的区别](http://nshipster.com/bool/)

而 Boolean 类型上是历史意义的类型, Boolean Mac OS historic type, sizeof(Boolean)==1。

对于我们来说,需要重点了解下 BOOL 和 bool 的区别:

  • 1、类型不同
    • BOOL为int型
    • bool为布尔型
  • 2、长度不同
    • bool只有一个字节
    • BOOL长度视实际环境来定,一般可认为是4个字节,它使用8位的存储空间。
  • 3、取值不同
    • bool取值false和true,是0和1的区别
    • BOOL取值FALSE和TRUE,是0和非0的区别
    bool test1 = 0;
    bool test2 = 5;
    BOOL test3 = NO;
    BOOL test4 = 5;
打印结果

从打印结果就可以更好的看出其区别,想想有时某些小细节还是很有用的。

你可能感兴趣的:(一句话笔记(14))