開發過程中的小知識點總結(五)

1.對數組中的元素去重的方法之一

  //對可變數組進行去重

NSMutableArray *phoneArray = [NSMutableArray array];

   for (int i = 0; i < person.persons.count; i++) {

       [phoneArray addObject:person.persons[i].phones.firstObject.phone];

}
    NSOrderedSet *set = [NSOrderedSet orderedSetWithArray:phoneArray];  //利用NSOrderedSet裏元素的互異性
if (set.array.count == 1) {
    nsLog(@"phoneArray數組去重成功");
}

//對不可變數組進行去重

NSMutableArray *phoneArray = [NSMutableArray array];

   for (int i = 0; i < person.persons.count; i++) {

      [phoneArray addObject:person.persons[i].phones.firstObject.phone];

 }
NSArray *array = [NSArray arrayWithArray:phoneArray];   
NSSet *set = [NSSet orderedSetWithArray:array];  //利用NSSet裏元素的互異性
NSArray *setArray = set.allObjects;

if (setArray.count == 1) {
    nsLog(@"phoneArray數組去重成功");
}

//試了一下,NSSet只能對NSArray去重,不能對NSMutableArray去重;  NSOrderedSet可以對NSMutableArray去重;

 

2.NSArray和NSMutableArray轉換的方式之一

// NSArray --> NSMutableArray

NSMutableArray *mutableArray = [myArray mutableCopy];

// NSMutableArray --> NSArray

NSArray *myArray = [mutableArray copy];

3.利用NSCharacterSet的stringByTrimmingCharactersInSet方法判斷字符串是否爲純數字。

//stringByTrimmingCharactersInSet函數可以過濾字符串中的指定特殊符號,如下我們指定輸入的字符串過濾掉十進制數字,只要判斷剩下的字符串是否爲空就行,爲空則都是數字,反之不然。

- (BOOL)isNum:(NSString *)checkedNumString {
    checkedNumString = [checkedNumString stringByTrimmingCharactersInSet:[NSCharacterSet decimalDigitCharacterSet]];
    if(checkedNumString.length > 0) {
        return NO;
    }
    return YES;
}

//附一個NSCharacterSet使用大全
https://blog.csdn.net/siji1449590363/article/details/46325459

4.簡單的毛玻璃效果實現方法之一

    UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
    UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:effect];
    effectView.alpha = 0.8;
    //必須給effcetView的frame賦值,因爲UIVisualEffectView是一個加到UIIamgeView上的子視圖.
    effectView.frame = CGRectMake(50, 100, 100, 100);
    [self.view addSubview:effectView];
    
    self.textView = [[UIView alloc] init];
    self.textView.frame = CGRectMake(50, 100, 100, 100);
    self.textView.backgroundColor = HexAlphaColor(0xffffff, 0.8);
    [self.view addSubview:self.textView];

    //保持這個代碼順序,在同一個區域,effectView先加載,self.textView後加載就會實現毛玻璃模糊效果;
    //effectWithStyle三種風格
    //UIBlurEffectStyleExtraLight,
    //UIBlurEffectStyleLight,
    //UIBlurEffectStyleDark,

 

5.傳入字符串生成二維碼

#pragma mark - 根據字符串生成二維碼
- (CIImage *)creatQRcodeWithUrlstring:(NSString *)urlString{

    // 1.實例化二維碼濾鏡
    CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
    // 2.恢復濾鏡的默認屬性 (因爲濾鏡有可能保存上一次的屬性)
    [filter setDefaults];
    // 3.將字符串轉換成NSdata
    NSData *data  = [urlString dataUsingEncoding:NSUTF8StringEncoding];
    // 4.通過KVO設置濾鏡, 傳入data, 將來濾鏡就知道要通過傳入的數據生成二維碼
    [filter setValue:data forKey:@"inputMessage"];
    // 5.生成二維碼
    CIImage *outputImage = [filter outputImage];
    return outputImage;
}
//生成的是CIImage對象,在顯示的時候還需要先轉換爲UIImage對象

CIImage *ciImage = [self  creatQRcodeWithUrlstring:@"https://itunes.apple.com/app/id1015272838"];
UIImage *qrcodeImage = [UIImage imageWithCIImage:ciImage];
self.qrcodeImageView.image = qrcodeImage;

參考鏈接:https://blog.csdn.net/zhuming3834/article/details/50832953

         https://www.jianshu.com/p/1895826f3cb3

 

6. WKWebView 播放視頻時要求小屏播放

客戶端實現:
 //配置信息
    WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
    //設置爲YES即可
    config.allowsInlineMediaPlayback = YES;
    //在初始化時講配置信息傳入
    WKWebView *mWebView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, ScreenWidth, ScreenHeight - TopFullHeight) configuration:config];

服務端實現:
<video preload='auto' id='my-video'  

    src='https://www.seastart.tv/introduce.mp4'  

    webkit-playsinline='true'                            /*這個屬性是ios 10中設置可以,讓視頻在小窗內播放,也就是不是全屏播放*/

    playsinline='true'                                        /*ios微信瀏覽器支持小窗播放*/

    'x-webkit-airplay='allow'    

    x5-video-player-type='h5'                          /*啓用同城播放器*/

    x5-video-player-fullscreen='true'               /*全屏設置,設置爲true是防止全屏*/

    x5-video-ignore-metadata='true'

    width='100%' height='100%' controls><p> 不支持video</p> </video>

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章