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>