久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS 开发经验 - 转载

發布時間:2024/8/1 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS 开发经验 - 转载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、禁止手機睡眠?[UIApplication?sharedApplication].idleTimerDisabled = YES;2、隱藏某行cell?- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{// 如果是你需要隱藏的那一行,返回高度為0?if(indexPath.row == YouWantToHideRow)?return?0;?return?44;}// 然后再你需要隱藏cell的時候調用[self.tableView beginUpdates];[self.tableView endUpdates];?3、禁用button高亮button.adjustsImageWhenHighlighted =?NO;或者在創建的時候?UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];?4、tableview遇到這種報錯failed to obtain a cell from its dataSource

是因為你的cell被調用的早了。先循環使用了cell,后又創建cell。順序錯了
可能原因:1、xib的cell沒有注冊 2、內存中已經有這個cell的緩存了(也就是說通過你的cellId找到的cell并不是你想要的類型),這時候需要改下cell的標識

5、cocoa pods報這個錯誤:unable to access 'https://github.com/facebook/pop.git/': Operation timed out after 0 milliseconds with 0 out of 0 bytes received

解決辦法:原因可能是網絡問題,網絡請求超時了,只需要重試就行了

6、cocoa pods 出現ERROR: While executing gem ... (Errno::EPERM)

解決辦法:
https://segmentfault.com/q/1010000002926243

7、動畫切換window的根控制器?// options是動畫選項[UIView transitionWithView:[UIApplication sharedApplication].keyWindow duration:0.5f options:UIViewAnimationOptionTransitionCrossDissolve animations:^{?BOOL oldState = [UIView areAnimationsEnabled]; [UIView setAnimationsEnabled:NO]; [UIApplication sharedApplication].keyWindow.rootViewController = [RootViewController new]; [UIView setAnimationsEnabled:oldState]; } completion:^(BOOL finished) { }];?8、去除數組中重復的對象?NSArray *newArr = [oldArr?valueForKeyPath:@“@distinctUnionOfObjects.self"];?9、編譯的時候遇到?no such file or directory: /users/apple/XXX

是因為編譯的時候,在此路徑下找不到這個文件,解決這個問題,首先是是要檢查缺少的文件是不是在工程中,如果不在工程中,需要從本地拖進去,如果發現已經存在工程中了,或者拖進去還是報錯,這時候需要去build phases中搜索這個文件,這時候很可能會搜出現兩個相同的文件,這時候,有一個路徑是正確的,刪除另外一個即可。如果刪除了還是不行,需要把兩個都刪掉,然后重新往工程里拖進這個文件即可

?
build phases?10、iOS8系統中,tableView最好實現下-tableView: heightForRowAtIndexPath:這個代理方法,要不然在iOS8中可能就會出現顯示不全或者無法響應事件的問題?11、iOS8中實現側滑功能的時候這個方法必須實現,要不然在iOS8中無法側滑?// 必須寫的方法,和editActionsForRowAtIndexPath配對使用,里面什么不寫也行- (void)tableView:(UITableView *)tableView?commitEditingStyle:(UITableViewCellEditingStyle)editingStyle?forRowAtIndexPath:(NSIndexPath *)indexPath {}?12、三個通知

NSSystemTimeZoneDidChangeNotification監聽修改時間界面的兩個按鈕狀態變化
UIApplicationSignificantTimeChangeNotification 監聽用戶改變時間 (只要點擊自動設置按鈕就會調用) NSSystemClockDidChangeNotification 監聽用戶修改時間(時間不同才會調用)

13、SDWebImage本地緩存有時候會害人。如果之前緩存過一張圖片,即使下次服務器換了這張圖片,但是圖片url沒換,用sdwebimage下載下來的還是以前那張,所以遇到這種問題,不要先去懟服務器,清空下緩存再試就好了。?14、上線前注意:

1)、刪掉代碼中所有的測試代碼
2)、如果后臺有審核模式,提醒后臺開啟此模式
3)、主流程再跑一跑
4)、全局搜索waring,檢查所有標記waring的地方

15、跳進app權限設置?// 跳進app設置?if (UIApplicationOpenSettingsURLString != NULL) { UIApplication *application = [UIApplication sharedApplication]; NSURL *URL = [NSURL?URLWithString:UIApplicationOpenSettingsURLString];if ([application?respondsToSelector:@selector(openURL:options:completionHandler:)]) { [application?openURL:URL?options:@{}?completionHandler:nil]; }?else { [application?openURL:URL]; } }?16、給一個view截圖UIGraphicsBeginImageContextWithOptions(view.bounds.size,?YES,?0.0); [view.layer renderInContext:UIGraphicsGetCurrentContext()];?UIImage *img =?UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();?17、開發中如果要動態修改tableView的tableHeaderView或者tableFooterView的高度,需要給tableView重新設置,而不是直接更改高度。正確的做法是重新設置一下tableView.tableFooterView = 更改過高度的view。為什么?其實在iOS8以上直接改高度是沒有問題的,在iOS8中出現了contentSize不準確的問題,這是解決辦法。?18、注意對象為nil的時候,調用此對象分類的方法不會執行?19、collectionView的內容小于其寬高的時候是不能滾動的,設置可以滾動:?collectionView.alwaysBounceHorizontal?=?YES;collectionView.alwaysBounceVertical?=?YES;?20、設置navigationBar上的title顏色和大小?[self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor youColor], NSFontAttributeName : [UIFont systemFontOfSize:15]}]?21、顏色轉圖片?+ (UIImage *)cl_imageWithColor:(UIColor *)color {?CGRect rect =?CGRectMake(0.0f,?0.0f,?1.0f,?1.0f);?UIGraphicsBeginImageContext(rect.size);CGContextRef context =?UIGraphicsGetCurrentContext();CGContextSetFillColorWithColor(context, [color?CGColor]);CGContextFillRect(context, rect);?UIImage *image =?UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();?return image;}?22、view設置圓角?#define ViewBorderRadius(View, Radius, Width, Color)//[View.layer setCornerRadius:(Radius)];/[View.layer setMasksToBounds:YES];/[View.layer setBorderWidth:(Width)];/[View.layer setBorderColor:[Color CGColor]] // view圓角?23、強/弱引用?#define WeakSelf(type)?__weak typeof(type)?weak##type =?type;?// weak#define StrongSelf(type)?__strong typeof(type)?type =?weak##type;?// strong?24、由角度轉換弧度?#define?DegreesToRadian(x) (M_PI * (x) /?180.0)25、由弧度轉換角度?#define RadianToDegrees(radian) (radian*180.0)/(M_PI)26、獲取圖片資源?#define GetImage(imageName) [UIImage imageNamed:[NSString stringWithFormat:@"%@",imageName]]?27、獲取temp?#define PathTemp NSTemporaryDirectory()?28、獲取沙盒 Document?#define PathDocument [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]?29、獲取沙盒 Cache?#define PathCache [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]?30、GCD代碼只執行一次?#define?kDISPATCH_ONCE_BLOCK(onceBlock)?static?dispatch_once_t?onceToken;?dispatch_once(&;onceToken, onceBlock);?31、自定義NSLog?#ifdef DEBUG#define NSLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__,?##__VA_ARGS__)#else#define NSLog(...)#endif?32、Font?#define?FontL(s)?[UIFont systemFontOfSize:s weight:UIFontWeightLight]#define?FontR(s)?[UIFont systemFontOfSize:s weight:UIFontWeightRegular]#define?FontB(s)?[UIFont systemFontOfSize:s weight:UIFontWeightBold]#define?FontT(s)?[UIFont systemFontOfSize:s weight:UIFontWeightThin]#define?Font(s)?FontL(s)?33、FORMAT?#define FORMAT(f, ...) [NSString stringWithFormat:f, ## __VA_ARGS__]?34、在主線程上運行?#define kDISPATCH_MAIN_THREAD(mainQueueBlock) dispatch_async(dispatch_get_main_queue(), mainQueueBlock);?35、開啟異步線程?#define kDISPATCH_GLOBAL_QUEUE_DEFAULT(globalQueueBlock) dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,?0), globalQueueBlocl);?36、通知?#define?NOTIF_ADD(n, f)[[NSNotificationCenter defaultCenter]?addObserver:self?selector:@selector(f)?name:n?object:nil]#define?NOTIF_POST(n, o)?[[NSNotificationCenter defaultCenter]?postNotificationName:n?object:o]#define?NOTIF_REMV()[[NSNotificationCenter defaultCenter]?removeObserver:self]?37、隨機顏色?+ (UIColor *)RandomColor {?NSInteger aRedValue = arc4random() %?255;NSInteger aGreenValue = arc4random() %?255;?NSInteger aBlueValue = arc4random() %?255;?UIColor *randColor = [UIColor colorWithRed:aRedValue /?255.0f green:aGreenValue /?255.0f blue:aBlueValue /?255.0f alpha:1.0f];return randColor;}?38、獲取window?+(UIWindow*)getWindow {?UIWindow* win =?nil;?//[UIApplication sharedApplication].keyWindow;?for (id item?in [UIApplication sharedApplication].windows) {?if ([item?class] == [UIWindow?class]) {?if (!((UIWindow*)item).hidden) { win = item;?break; } } }?return win;}39、修改textField的placeholder的字體顏色、大小?[textField setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];[textField setValue:[UIFont boldSystemFontOfSize:16] forKeyPath:@"_placeholderLabel.font"];40、統一收起鍵盤?[[[UIApplication sharedApplication] keyWindow] endEditing:YES];?41、控制屏幕旋轉,在控制器中寫?/** 是否支持自動轉屏 */- (BOOL)shouldAutorotate {?return?YES;}/** 支持哪些屏幕方向 */- (UIInterfaceOrientationMask)supportedInterfaceOrientations {?return?UIInterfaceOrientationMaskLandscapeLeft |?UIInterfaceOrientationMaskLandscapeRight;}/** 默認的屏幕方向(當前ViewController必須是通過模態出來的UIViewController(模態帶導航的無效)方式展現出來的,才會調用這個方法) */- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {?return?UIInterfaceOrientationLandscapeLeft |?UIInterfaceOrientationLandscapeRight;}42、獲取app緩存大小?- (CGFloat)getCachSize {?NSUInteger imageCacheSize = [[SDImageCache sharedImageCache] getSize];?//獲取自定義緩存大小?//用枚舉器遍歷 一個文件夾的內容?//1.獲取 文件夾枚舉器?NSString *myCachePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Caches"];NSDirectoryEnumerator *enumerator = [[NSFileManager defaultManager] enumeratorAtPath:myCachePath]; __block?NSUInteger count =?0;?//2.遍歷?for (NSString *fileName?in enumerator) {?NSString *path = [myCachePath stringByAppendingPathComponent:fileName];?NSDictionary *fileDict = [[NSFileManager defaultManager] attributesOfItemAtPath:path error:nil]; count += fileDict.fileSize;//自定義所有緩存大小 }?// 得到是字節 轉化為MCGFloat totalSize = ((CGFloat)imageCacheSize+count)/1024/1024;?return totalSize;}?43、清理app緩存?- (void)handleClearView {?//刪除兩部分?//1.刪除 sd 圖片緩存?//先清除內存中的圖片緩存 [[SDImageCache sharedImageCache] clearMemory];?//清除磁盤的緩存 [[SDImageCache sharedImageCache] clearDisk];?//2.刪除自己緩存?NSString *myCachePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Caches"]; [[NSFileManager defaultManager] removeItemAtPath:myCachePath error:nil];}?44、模型轉字典static?NSSet *classes;- (NSMutableDictionary *)getParameterDictionary {NSMutableDictionary *dict = [NSMutableDictionary dictionary]; Class c =?self.class;?while (c) {?unsigned count; objc_property_t *properties = class_copyPropertyList([c?class], &;count);?for (int i =?0; i < count; i++) {NSString *key = [NSString stringWithUTF8String:property_getName(properties[i])]; dict[key] = [self valueForKey:key]; } free(properties);?// 獲得父類 c = class_getSuperclass(c);?if ([self isClassFromFoundation:c])?break; }?return dict;}- (BOOL)isClassFromFoundation:(Class)c{?if (c == [NSObject?class] || c == [NSManagedObject?class])?return?YES; __block?BOOL result =?NO; [[self foundationClasses] enumerateObjectsUsingBlock:^(Class foundationClass,?BOOL *stop) {?if ([c isSubclassOfClass:foundationClass]) { result =?YES; *stop =?YES; } }];?return result;}- (NSSet *)foundationClasses{?if (classes ==?nil) {?// 集合中沒有NSObject,因為幾乎所有的類都是繼承自NSObject,具體是不是NSObject需要特殊判斷 classes = [NSSet setWithObjects: [NSURL?class], [NSDate?class], [NSValue?class], [NSData?class], [NSError?class], [NSArray?class], [NSDictionary?class], [NSString?class], [NSAttributedString?class],?nil]; }return classes;}?45、交換兩個方法實現?Class aClass = [self?class]; SEL originalSelector = @selector(viewWillAppear:); SEL swizzledSelector = @selector(xxx_viewWillAppear:);?Method?originalMethod =?class_getInstanceMethod(aClass, originalSelector);?Method?swizzledMethod =?class_getInstanceMethod(aClass, swizzledSelector); BOOL didAddMethod = class_addMethod(aClass, originalSelector, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod));?if (didAddMethod)?{ class_replaceMethod(aClass, swizzledSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod)); }?else?{ method_exchangeImplementations(originalMethod, swizzledMethod); }?46、打印百分號和引號?NSLog(@"%%");?NSLog(@"/"");?47、幾個常用權限判斷?if ([CLLocationManager authorizationStatus] ==kCLAuthorizationStatusDenied) {?NSLog(@"沒有定位權限"); }?AVAuthorizationStatus statusVideo = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];?if (statusVideo ==?AVAuthorizationStatusDenied) {?NSLog(@"沒有攝像頭權限"); }//是否有麥克風權限?AVAuthorizationStatus statusAudio = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio];?if (statusAudio ==?AVAuthorizationStatusDenied) {?NSLog(@"沒有錄音權限"); } [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {?if (status == PHAuthorizationStatusDenied) {?NSLog(@"沒有相冊權限"); } }];?48、獲取手機型號?+ (NSString *)getDeviceInfo { struct utsname systemInfo; uname(&;systemInfo); NSString *platform = [NSString?stringWithCString:systemInfo.machine?encoding:NSASCIIStringEncoding];?if ([platform?isEqualToString:@"iPhone1,1"])?return @"iPhone 2G";?if ([platform?isEqualToString:@"iPhone1,2"])?return @"iPhone 3G";?if ([platform?isEqualToString:@"iPhone2,1"])?return @"iPhone 3GS";?if ([platform?isEqualToString:@"iPhone3,1"])?return @"iPhone 4";?if ([platform?isEqualToString:@"iPhone3,2"])?return @"iPhone 4";?if ([platform?isEqualToString:@"iPhone3,3"])?return @"iPhone 4";?if ([platform?isEqualToString:@"iPhone4,1"])?return @"iPhone 4S";?if ([platform?isEqualToString:@"iPhone5,1"])?return @"iPhone 5";?if ([platform?isEqualToString:@"iPhone5,2"])?return @"iPhone 5";?if ([platform?isEqualToString:@"iPhone5,3"])?return @"iPhone 5c";?if ([platform?isEqualToString:@"iPhone5,4"])?return @"iPhone 5c";?if ([platform?isEqualToString:@"iPhone6,1"])?return @"iPhone 5s";?if ([platform?isEqualToString:@"iPhone6,2"])?return @"iPhone 5s";?if ([platform?isEqualToString:@"iPhone7,1"])?return @"iPhone 6 Plus";?if ([platform?isEqualToString:@"iPhone7,2"])?return @"iPhone 6";?if ([platform?isEqualToString:@"iPhone8,1"])?return @"iPhone 6s";?if ([platform?isEqualToString:@"iPhone8,2"])?return @"iPhone 6s Plus";?// 日行兩款手機型號均為日本獨占,可能使用索尼FeliCa支付方案而不是蘋果支付?if ([platform?isEqualToString:@"iPhone9,1"])?return @"國行、日版、港行iPhone 7";?if ([platform?isEqualToString:@"iPhone9,2"])?return @"港行、國行iPhone 7 Plus";if ([platform?isEqualToString:@"iPhone9,3"])?return @"美版、臺版iPhone 7";?if ([platform?isEqualToString:@"iPhone9,4"])?return @"美版、臺版iPhone 7 Plus";if ([platform?isEqualToString:@"iPhone8,4"])?return @"iPhone SE";?if ([platform?isEqualToString:@"iPod1,1"])?return @"iPod Touch 1G";?if ([platform?isEqualToString:@"iPod2,1"])?return @"iPod Touch 2G";?if ([platform?isEqualToString:@"iPod3,1"])?return @"iPod Touch 3G";?if ([platform?isEqualToString:@"iPod4,1"])?return @"iPod Touch 4G";?if ([platform?isEqualToString:@"iPod5,1"])?return @"iPod Touch 5G";?if ([platform?isEqualToString:@"iPad1,1"])?return @"iPad 1G";?if ([platform?isEqualToString:@"iPad2,1"])?return @"iPad 2";?if ([platform?isEqualToString:@"iPad2,2"])?return @"iPad 2";?if ([platform?isEqualToString:@"iPad2,3"])?return @"iPad 2";?if ([platform?isEqualToString:@"iPad2,4"])?return @"iPad 2";?if ([platform?isEqualToString:@"iPad2,5"])?return @"iPad Mini 1G";?if ([platform?isEqualToString:@"iPad2,6"])?return @"iPad Mini 1G";?if ([platform?isEqualToString:@"iPad2,7"])?return @"iPad Mini 1G";?if ([platform?isEqualToString:@"iPad3,1"])?return @"iPad 3";?if ([platform?isEqualToString:@"iPad3,2"])?return @"iPad 3";?if ([platform?isEqualToString:@"iPad3,3"])?return @"iPad 3";?if ([platform?isEqualToString:@"iPad3,4"])?return @"iPad 4";?if ([platform?isEqualToString:@"iPad3,5"])?return @"iPad 4";?if ([platform?isEqualToString:@"iPad3,6"])?return @"iPad 4";?if ([platform?isEqualToString:@"iPad4,1"])?return @"iPad Air";?if ([platform?isEqualToString:@"iPad4,2"])?return @"iPad Air";?if ([platform?isEqualToString:@"iPad4,3"])?return @"iPad Air";?if ([platform?isEqualToString:@"iPad4,4"])?return @"iPad Mini 2G";?if ([platform?isEqualToString:@"iPad4,5"])?return @"iPad Mini 2G";?if ([platform?isEqualToString:@"iPad4,6"])?return @"iPad Mini 2G";?if ([platform?isEqualToString:@"i386"])?return @"iPhone Simulator";?if ([platform?isEqualToString:@"x86_64"])?return @"iPhone Simulator";?return platform;}49、長按復制功能?- (void)viewDidLoad{ [self.view addGestureRecognizer:[[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(pasteBoard:)]];}- (void)pasteBoard:(UILongPressGestureRecognizer *)longPress {?if (longPress.state ==?UIGestureRecognizerStateBegan) {?UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; pasteboard.string =?@"需要復制的文本"; }}50、cocoapods升級

在終端執行 sudo gem install -n / usr / local / bin cocoapods --pre

51、設置啟動頁后,依然顯示之前的

刪除app,手機重啟,重新安裝

52、判斷圖片類型?//通過圖片Data數據第一個字節 來獲取圖片擴展名- (NSString *)contentTypeForImageData:(NSData *)data{ uint8_t c; [data getBytes:&;c length:1];?switch (c) {?case?0xFF:?return?@"jpeg";?case?0x89:return?@"png";?case?0x47:?return?@"gif";?case?0x49:?case?0x4D:?return?@"tiff";?case?0x52:?if ([data length] <?12) {?return?nil; }?NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(0,?12)] encoding:NSASCIIStringEncoding];?if ([testString hasPrefix:@"RIFF"] &;&; [testString hasSuffix:@"WEBP"]) {?return?@"webp"; }?return?nil; }?return?nil;}53、獲取手機和app信息?NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];?CFShow(infoDictionary);?// app名稱?NSString *app_Name = [infoDictionary objectForKey:@"CFBundleDisplayName"];?// app版本?NSString *app_Version = [infoDictionary objectForKey:@"CFBundleShortVersionString"];?// app build版本?NSString *app_build = [infoDictionary objectForKey:@"CFBundleVersion"];?//手機序列號?NSString* identifierNumber = [[UIDevice currentDevice] uniqueIdentifier];NSLog(@"手機序列號: %@",identifierNumber);?//手機別名: 用戶定義的名稱NSString* userPhoneName = [[UIDevice currentDevice] name];?NSLog(@"手機別名: %@", userPhoneName);?//設備名稱?NSString* deviceName = [[UIDevice currentDevice] systemName];?NSLog(@"設備名稱: %@",deviceName );?//手機系統版本?NSString* phoneVersion = [[UIDevice currentDevice] systemVersion];NSLog(@"手機系統版本: %@", phoneVersion);?//手機型號?NSString* phoneModel = [[UIDevice currentDevice] model];?NSLog(@"手機型號: %@",phoneModel );?//地方型號 (國際化區域名稱)?NSString* localPhoneModel = [[UIDevice currentDevice] localizedModel];?NSLog(@"國際化區域名稱: %@",localPhoneModel );?NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];?// 當前應用名稱?NSString *appCurName = [infoDictionary objectForKey:@"CFBundleDisplayName"];?NSLog(@"當前應用名稱:%@",appCurName);?// 當前應用軟件版本 比如:1.0.1?NSString *appCurVersion = [infoDictionary objectForKey:@"CFBundleShortVersionString"];?NSLog(@"當前應用軟件版本:%@",appCurVersion);?// 當前應用版本號碼 int類型?NSString *appCurVersionNum = [infoDictionary objectForKey:@"CFBundleVersion"];NSLog(@"當前應用版本號碼:%@",appCurVersionNum);?54、獲取一個類的所有屬性?id LenderClass = objc_getClass("Lender");unsigned?int outCount, i;objc_property_t *properties = class_copyPropertyList(LenderClass, &;outCount);for (i =?0; i < outCount; i++) { objc_property_t?property?= properties[i]; fprintf(stdout,?"%s %s/n", property_getName(property), property_getAttributes(property));}?55、image圓角?- (UIImage *)circleImage{// NO代表透明?UIGraphicsBeginImageContextWithOptions(self.size,?NO,?1);?// 獲得上下文?CGContextRef ctx =?UIGraphicsGetCurrentContext();?// 添加一個圓?CGRect rect =?CGRectMake(0,?0,?self.size.width,?self.size.height);?// 方形變圓形?CGContextAddEllipseInRect(ctx, rect);?// 裁剪?CGContextClip(ctx);?// 將圖片畫上去 [self drawInRect:rect];?UIImage *image =?UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();?return image;}?56、image拉伸?+ (UIImage *)resizableImage:(NSString *)imageName{ UIImage *image = [UIImage imageNamed:imageName]; CGFloat imageW =?image.size.width; CGFloat imageH =?image.size.height;?return [image resizableImageWithCapInsets:UIEdgeInsetsMake(imageH *?0.5, imageW *?0.5, imageH *?0.5, imageW *?0.5) resizingMode:UIImageResizingModeStretch];}57、JSON字符串轉字典?+ (NSDictionary *)parseJSONStringToNSDictionary:(NSString *)JSONString {?NSData *JSONData = [JSONString dataUsingEncoding:NSUTF8StringEncoding];?NSDictionary *responseJSON = [NSJSONSerialization JSONObjectWithData:JSONData options:NSJSONReadingMutableLeaves error:nil];?return responseJSON;}?58、身份證號驗證?- (BOOL)validateIdentityCard {?BOOL flag;?if (self.length <=?0) { flag =?NO;?return flag; }?NSString *regex2 =?@"^(//d{14}|//d{17})(//d|[xX])$";NSPredicate *identityCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];?return [identityCardPredicate evaluateWithObject:self];}?59、獲取設備mac地址?+ (NSString *)macAddress {?int mib[6];?size_t len;?char *buf;?unsigned?char *ptr;struct?if_msghdr *ifm;?struct?sockaddr_dl *sdl; mib[0] = CTL_NET; mib[1] = AF_ROUTE; mib[2] =?0; mib[3] = AF_LINK; mib[4] = NET_RT_IFLIST;?if((mib[5] = if_nametoindex("en0")) ==?0) {?printf("Error: if_nametoindex error/n");?return?NULL; }?if(sysctl(mib,?6,?NULL, &;len,?NULL,?0) <?0) {?printf("Error: sysctl, take 1/n");?return?NULL; }?if((buf =?malloc(len)) ==?NULL) {?printf("Could not allocate memory. Rrror!/n");?return?NULL; }?if(sysctl(mib,?6, buf, &;len,?NULL,?0) <?0) {?printf("Error: sysctl, take 2");?return?NULL; } ifm = (struct if_msghdr *)buf; sdl = (struct sockaddr_dl *)(ifm +?1); ptr = (unsigned?char *)LLADDR(sdl); NSString *outstring = [NSString stringWithFormat:@"%02X:%02X:%02X:%02X:%02X:%02X", *ptr, *(ptr+1), *(ptr+2), *(ptr+3), *(ptr+4), *(ptr+5)];?free(buf);?return outstring;}?60、導入自定義字體庫

1、找到你想用的字體的 ttf 格式,拖入工程
2、在工程的plist中增加一行數組,“Fonts provided by application”
3、為這個key添加一個item,value為你剛才導入的ttf文件名
4、直接使用即可:label.font = [UIFont fontWithName:@"你剛才導入的ttf文件名" size:20.0];

61、拿到當前正在顯示的控制器,不管是push進去的,還是present進去的都能拿到?- (UIViewController *)getVisibleViewControllerFrom:(UIViewController*)vc {?if ([vc isKindOfClass:[UINavigationController?class]]) {?return [self getVisibleViewControllerFrom:[((UINavigationController*) vc) visibleViewController]]; }else?if ([vc isKindOfClass:[UITabBarController?class]]){?return [self getVisibleViewControllerFrom:[((UITabBarController*) vc) selectedViewController]]; }?else {?if (vc.presentedViewController) {?return [self getVisibleViewControllerFrom:vc.presentedViewController]; }?else {?return vc; } }}?62、runtime為一個類動態添加屬性?// 動態添加屬性的本質是: 讓對象的某個屬性與值產生關聯 objc_setAssociatedObject(self, WZBPlaceholderViewKey, placeholderView, OBJC_ASSOCIATION_RETAIN_NONATOMIC);?63、獲取runtime為一個類動態添加的屬性?objc_getAssociatedObject(self, WZBPlaceholderViewKey);?64、KVO監聽某個對象的屬性?// 添加監聽者[self?addObserver:self?forKeyPath:property?options:NSKeyValueObservingOptionNew?context:nil];// 當監聽的屬性值變化的時候會來到這個方法- (void)observeValueForKeyPath:(NSString *)keyPath?ofObject:(id)object?change:(NSDictionary *)change?context:(void *)context {?if ([keyPath?isEqualToString:@"property"]) { [self textViewTextChange]; }?else { }}?65、Reachability判斷網絡狀態?NetworkStatus?status = [[Reachability reachabilityForInternetConnection] currentReachabilityStatus];?if (status == NotReachable) { NSLog(@"當前設備無網絡"); }?if (status == ReachableViaWiFi) { NSLog(@"當前wifi網絡"); }?if (status == ReachableViaWWAN) { NSLog(@"當前蜂窩移動網絡"); }?66、AFNetworking監聽網絡狀態?// 監聽網絡狀況 AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager]; [mgr?setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {switch (status) {?case?AFNetworkReachabilityStatusUnknown:?break;?case?AFNetworkReachabilityStatusNotReachable: { [SVProgressHUD?showInfoWithStatus:@"當前設備無網絡"]; }?break;?case?AFNetworkReachabilityStatusReachableViaWiFi: [SVProgressHUD?showInfoWithStatus:@"當前Wi-Fi網絡"];?break;?case?AFNetworkReachabilityStatusReachableViaWWAN: [SVProgressHUD?showInfoWithStatus:@"當前蜂窩移動網絡"];?break;?default:?break; } }]; [mgr startMonitoring];?67、透明顏色不影響子視圖透明度?[UIColor colorWithRed:<#(CGFloat)#> green:<#(CGFloat)#> blue:<#(CGFloat)#> alpha:<#(CGFloat)#>];68、取圖片某一點的顏色?if (point.x <?0 || point.y <?0)?return?nil;?CGImageRef imageRef =?self.CGImage;?NSUInteger width =?CGImageGetWidth(imageRef);NSUInteger height =?CGImageGetHeight(imageRef);?if (point.x >= width || point.y >= height)?return?nil;?unsigned?char *rawData = malloc(height * width *?4);?if (!rawData)?return?nil;?CGColorSpaceRef colorSpace =?CGColorSpaceCreateDeviceRGB();?NSUInteger bytesPerPixel =?4;?NSUInteger bytesPerRow = bytesPerPixel * width;?NSUInteger bitsPerComponent =?8;CGContextRef context =?CGBitmapContextCreate(rawData, width, height, bitsPerComponent, bytesPerRow, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);?if (!context) { free(rawData);?return?nil; }?CGColorSpaceRelease(colorSpace);CGContextDrawImage(context,?CGRectMake(0,?0, width, height), imageRef);CGContextRelease(context);?int byteIndex = (bytesPerRow * point.y) + point.x * bytesPerPixel;?CGFloat red = (rawData[byteIndex] *?1.0) /?255.0;?CGFloat green = (rawData[byteIndex +?1] *?1.0) /?255.0;?CGFloat blue = (rawData[byteIndex +?2] *?1.0) /?255.0;?CGFloat alpha = (rawData[byteIndex +?3] *?1.0) /?255.0;?UIColor *result =?nil; result = [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; free(rawData);?return result;?69、判斷該圖片是否有透明度通道?- (BOOL)hasAlphaChannel{ CGImageAlphaInfo?alpha = CGImageGetAlphaInfo(self.CGImage);?return (alpha == kCGImageAlphaFirst ||alpha == kCGImageAlphaLast ||?alpha == kCGImageAlphaPremultipliedFirst ||alpha == kCGImageAlphaPremultipliedLast);}?70、獲得灰度圖?+ (UIImage*)covertToGrayImageFromImage:(UIImage*)sourceImage{?int width = sourceImage.size.width;?int height = sourceImage.size.height;CGColorSpaceRef colorSpace =?CGColorSpaceCreateDeviceGray();CGContextRef context =?CGBitmapContextCreate (nil,width,height,8,0,colorSpace,kCGImageAlphaNone);CGColorSpaceRelease(colorSpace);?if (context ==?NULL) {?return?nil; }CGContextDrawImage(context,CGRectMake(0,?0, width, height), sourceImage.CGImage);?CGImageRef contextRef =?CGBitmapContextCreateImage(context);?UIImage *grayImage = [UIImage imageWithCGImage:contextRef];?CGContextRelease(context);CGImageRelease(contextRef);?return grayImage;}?71、根據bundle中的文件名讀取圖片?+ (UIImage *)imageWithFileName:(NSString *)name { NSString *extension = @"png"; NSArray *components = [name componentsSeparatedByString:@"."];?if ([components count] >=?2) { NSUInteger lastIndex = components.count -?1; extension = [components objectAtIndex:lastIndex];?name = [name substringToIndex:(name.length-(extension.length+1))]; }?// 如果為Retina屏幕且存在對應圖片,則返回Retina圖片,否則查找普通圖片?if ([UIScreen mainScreen].scale ==?2.0) {?name = [name stringByAppendingString:@"@2x"]; NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:extension];?if (path !=?nil) { return [UIImage imageWithContentsOfFile:path]; } }?if ([UIScreen mainScreen].scale ==?3.0) {name = [name stringByAppendingString:@"@3x"]; NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:extension];?if (path !=?nil) { return [UIImage imageWithContentsOfFile:path]; } } NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:extension];?if (path) { return [UIImage imageWithContentsOfFile:path]; } return?nil;}?72、合并兩個圖片?+ (UIImage*)mergeImage:(UIImage*)firstImage withImage:(UIImage*)secondImage {?CGImageRef firstImageRef = firstImage.CGImage;CGFloat firstWidth =?CGImageGetWidth(firstImageRef);?CGFloat firstHeight =?CGImageGetHeight(firstImageRef);?CGImageRef secondImageRef = secondImage.CGImage;?CGFloat secondWidth =?CGImageGetWidth(secondImageRef);?CGFloat secondHeight =?CGImageGetHeight(secondImageRef);?CGSize mergedSize =?CGSizeMake(MAX(firstWidth, secondWidth), MAX(firstHeight, secondHeight));UIGraphicsBeginImageContext(mergedSize); [firstImage drawInRect:CGRectMake(0,?0, firstWidth, firstHeight)]; [secondImage drawInRect:CGRectMake(0,?0, secondWidth, secondHeight)];?UIImage *image =?UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();?return image;}?73、根據bundle中的圖片名創建imageview?+ (id)imageViewWithImageNamed:(NSString*)imageName{?return?[[UIImageView alloc] initWithImage:[UIImage imageNamed:imageName]];}74、為imageView添加倒影?CGRect frame =?self.frame; frame.origin.y += (frame.size.height +?1);?UIImageView *reflectionImageView = [[UIImageView alloc] initWithFrame:frame];?self.clipsToBounds =?TRUE; reflectionImageView.contentMode =?self.contentMode; [reflectionImageView setImage:self.image]; reflectionImageView.transform =?CGAffineTransformMakeScale(1.0,?-1.0);?CALayer *reflectionLayer = [reflectionImageView layer];?CAGradientLayer *gradientLayer = [CAGradientLayer layer]; gradientLayer.bounds = reflectionLayer.bounds; gradientLayer.position =?CGPointMake(reflectionLayer.bounds.size.width /?2, reflectionLayer.bounds.size.height *?0.5); gradientLayer.colors = [NSArray arrayWithObjects: (id)[[UIColor clearColor]?CGColor], (id)[[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.3]?CGColor],?nil]; gradientLayer.startPoint =?CGPointMake(0.5,0.5); gradientLayer.endPoint =?CGPointMake(0.5,1.0); reflectionLayer.mask = gradientLayer; [self.superview addSubview:reflectionImageView];?75、畫水印?// 畫水印- (void) setImage:(UIImage *)image withWaterMark:(UIImage *)mark inRect:(CGRect)rect{?if ([[[UIDevice currentDevice] systemVersion] floatValue] >=?4.0) {UIGraphicsBeginImageContextWithOptions(self.frame.size,?NO,?0.0); }?//原圖 [image drawInRect:self.bounds];?//水印圖 [mark drawInRect:rect];?UIImage *newPic =?UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();?self.image = newPic;}?76、讓label的文字內容顯示在左上/右上/左下/右下/中心頂/中心底部?自定義UILabel// 重寫label的textRectForBounds方法- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines { CGRect?rect = [super textRectForBounds:bounds limitedToNumberOfLines:numberOfLines];?switch (self.textAlignmentType) {?case WZBTextAlignmentTypeLeftTop: {?rect.origin = bounds.origin; }?break;?case WZBTextAlignmentTypeRightTop: {?rect.origin = CGPointMake(CGRectGetMaxX(bounds) -?rect.size.width, bounds.origin.y); }?break;?case WZBTextAlignmentTypeLeftBottom: {?rect.origin = CGPointMake(bounds.origin.x, CGRectGetMaxY(bounds) -?rect.size.height); }break;?case WZBTextAlignmentTypeRightBottom: {?rect.origin = CGPointMake(CGRectGetMaxX(bounds) -?rect.size.width, CGRectGetMaxY(bounds) -?rect.size.height); }?break;?case WZBTextAlignmentTypeTopCenter: {?rect.origin = CGPointMake((CGRectGetWidth(bounds) - CGRectGetWidth(rect)) /?2, CGRectGetMaxY(bounds) -?rect.origin.y); }?break;?case WZBTextAlignmentTypeBottomCenter: {?rect.origin = CGPointMake((CGRectGetWidth(bounds) - CGRectGetWidth(rect)) /?2, CGRectGetMaxY(bounds) - CGRectGetMaxY(bounds) -?rect.size.height); }break;?case WZBTextAlignmentTypeLeft: {?rect.origin = CGPointMake(0,?rect.origin.y); }?break;?case WZBTextAlignmentTypeRight: {?rect.origin = CGPointMake(rect.origin.x,?0); }?break;?case WZBTextAlignmentTypeCenter: {rect.origin = CGPointMake((CGRectGetWidth(bounds) - CGRectGetWidth(rect)) /?2, (CGRectGetHeight(bounds) - CGRectGetHeight(rect)) /?2); }?break;?default:?break; }?return?rect;}- (void)drawTextInRect:(CGRect)rect { CGRect textRect = [self textRectForBounds:rect limitedToNumberOfLines:self.numberOfLines]; [super drawTextInRect:textRect];}?77、scrollView上的輸入框,鍵盤擋住的問題?推薦用IQKeyboardManager這個框架!手動解決如下1、監聽鍵盤彈出/消失的通知2、在通知中加入代碼:NSDictionary* info = [aNotification userInfo];CGRect keyPadFrame=[[UIApplication sharedApplication].keyWindow convertRect:[[info objectForKey:UIKeyboardFrameBeginUserInfoKey]?CGRectValue] fromView:self.view];CGSize kbSize =keyPadFrame.size;CGRect activeRect=[self.view convertRect:activeField.frame fromView:activeField.superview];CGRect aRect =?self.view.bounds;aRect.size.height -= (kbSize.height);CGPoint origin = activeRect.origin;origin.y -= backScrollView.contentOffset.y;if (!CGRectContainsPoint(aRect, origin)) {?CGPoint scrollPoint =?CGPointMake(0.0,CGRectGetMaxY(activeRect)-(aRect.size.height)); [backScrollView setContentOffset:scrollPoint animated:YES];}?78、frame布局的cell動態高度

這種通常在你的模型中添加一個輔助屬性cellHeight,在模型中重寫這個屬性的get方法,根據你的布局和模型中的其他屬性值計算出總高度。最后在tableView:heightForRow方法中,根據indexPath找出對應的模型,返回這個高度即可。

79、AutoLayout布局的cell動態高度?// 1、設置tableView的屬性self.tableView.rowHeight =?UITableViewAutomaticDimension;self.tableView.estimatedRowHeight =?44.0;?// 這個屬性非0,估計cell高度?//?2、至上而下設置cell的約束,注意,上下左右最好都要頂到cell的四周??
cell?80、使用performSelector:調用函數,內存泄漏問題

當我們在開發中使用[obj performSelector:NSSelectorFromString(@"aMethod")];這類方法時可能會收到一個警告"performSelector may cause a leak because its selector is unknown".
是因為編譯器不清楚這個對象能不能相應這個方法,如果不能,則是不安全的,而且編譯器也不清楚該怎么處理這個方法的返回值!

使用以下代碼調用即可:if (! obj) {?return; }SEL selector = NSSelectorFromString(@"aMethod");IMP imp = [obj methodForSelector:selector];void (*func)(id, SEL) =?(void *)imp;func(obj, selector);或者:SEL selector = NSSelectorFromString(@"aMethod");((void (*)(id, SEL))[obj methodForSelector:selector])(obj, selector);?81、一個字符串是否包含另一個字符串?// 方法1if ([str1 containsString:str2]) {?NSLog(@"str1包含str2"); }?else {?NSLog(@"str1不包含str2"); }// 方法2if ([str1 rangeOfString: str2].location ==?NSNotFound) {?NSLog(@"str1不包含str2"); }?else {NSLog(@"str1包含str2"); }?82、cell去除選中效果?cell.selectionStyle = UITableViewCellSelectionStyleNone;?83、cell點按效果?- (void)tableView:(UITableView *)tableView?didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView?deselectRowAtIndexPath:indexPath?animated:YES];}?84、當刪除一個從xib拖出來的屬性時,一定記得把xib中對應的線也刪掉,不然會報類似[<ViewController 0x7fea6ed05980> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key的crash??
點擊這個叉號刪除?85、真機測試的時候報錯:Could not launch "你的 App",process launch failed: Security

因為你的app沒有上線,iOS9開始,需要手動信任Xcode生成的描述文件,打開手機設置->通用->描述文件->點擊你的app的描述文件->點擊信任

86、真機測試的時候報錯:Could not find Developer Disk Image

這是因為你的設備系統版本大于Xcode能兼容的系統版本,比如你的設備是iOS10.3,而Xcode版本是8.2(Xcode8.2最大兼容iOS10.2),就會報這個錯誤。解決辦法就是升級Xcode!

87、UITextView沒有placeholder的問題?

網上有很多此類自定義控件,也可以參考下我寫的一個UITextView分類?UITextView-WZB

88、移除字符串中的空格和換行?+ (NSString *)removeSpaceAndNewline:(NSString *)str { NSString *temp = [str?stringByReplacingOccurrencesOfString:@" "?withString:@""]; temp = [temp?stringByReplacingOccurrencesOfString:@"/r"?withString:@""]; temp = [temp?stringByReplacingOccurrencesOfString:@"/n"?withString:@""];?return temp;}89、判斷字符串中是否有空格?+ (BOOL)isBlank:(NSString *)str {?NSRange _range = [str rangeOfString:@" "];?if (_range.location !=?NSNotFound) {?//有空格?return?YES; }?else {?//沒有空格?return?NO; }}?90、獲取一個視頻的第一幀圖片NSURL *url = [NSURL URLWithString:filepath];?AVURLAsset *asset1 = [[AVURLAsset alloc] initWithURL:url options:nil];?AVAssetImageGenerator *generate1 = [[AVAssetImageGenerator alloc] initWithAsset:asset1]; generate1.appliesPreferredTrackTransform =?YES;?NSError *err =?NULL;CMTime time =?CMTimeMake(1,?2);?CGImageRef oneRef = [generate1 copyCGImageAtTime:time actualTime:NULL error:&;err];?UIImage *one = [[UIImage alloc] initWithCGImage:oneRef];?return one;?91、獲取視頻的時長?+ (NSInteger)getVideoTimeByUrlString:(NSString *)urlString {?NSURL *videoUrl = [NSURL URLWithString:urlString];?AVURLAsset *avUrl = [AVURLAsset assetWithURL:videoUrl];?CMTime time = [avUrl duration];?int seconds = ceil(time.value/time.timescale);?return seconds;}?92、字符串是否為空?+ (BOOL)isEqualToNil:(NSString *)str {?return?str.length <=?0 || [str isEqualToString:@""] || !str;}?93、將app上傳到App Store的時候通常會遇到這個問題??
try again

很多人說這事蘋果爸爸服務器問題,重復嘗試幾次,總會成功的!
但是經過嘗試發現如果使用Application Loader上傳成功率就非常高,所以還是推薦把ipa文件導出直接用Application Loader上傳。
如果Application Loader也不行,需要檢查下自己的網絡,有時候vpn也會提高速度。

94、當tableView占不滿一屏時,去除下邊多余的單元格self.tableView.tableHeaderView = [UIView new];self.tableView.tableFooterView = [UIView new];?95、isKindOfClass和isMemberOfClass的區別?isKindOfClass可以判斷某個對象是否屬于某個類,或者這個類的子類。isMemberOfClass更加精準,它只能判斷這個對象類型是否為這個類(不能判斷子類)?96、__block

當一個局部變量需要在block里改變時,需要在定義時加上__block修飾,具體請看官方文檔?http://developer.apple.com/library/ios/documentation/cocoa/Conceptual/Blocks/Articles/bxVariables.html#//apple_ref/doc/uid/TP40007502-CH6-SW6

97、-[ViewController aMethod:]: unrecognized selector sent to instance 0x7fe91e607fb0

這是一個經典錯誤,ViewController不能響應aMethod這個方法,錯誤原因可能viewController文件中沒有實現aMethod這個方法

98、UITableView (<UITableView: 0x7ff19b027000; >) failed to obtain a cell from its dataSource (<ViewController: 0x7ff19a507520>)

這個錯誤原因是tableView的代理方法-tableView:cellForRowAtIndexPath:需要返回一個UITableViewCell,而你返回了一個nil。另外這個地方返回值不是UITableViewCell類型也會導致崩潰

99、約束如何做UIView動畫??1、把需要改的約束Constraint拖條線出來,成為屬性2、在需要動畫的地方加入代碼,改變此屬性的constant屬性3、開始做UIView動畫,動畫里邊調用layoutIfNeeded方法@property (weak,?nonatomic)?IBOutlet?NSLayoutConstraint *buttonTopConstraint;self.buttonTopConstraint.constant =?100; [UIView animateWithDuration:.5 animations:^{ [self.view layoutIfNeeded]; }];?100、從NSURL中拿到鏈接字符串?NSString *urlString = myURL.absoluteString;?101、將tableView滾動到頂部?[tableView?setContentOffset:CGPointZero?animated:YES];或者[tableView?scrollRectToVisible:CGRectMake(0,?0,?1,?1)?animated:YES];?102、如果用addTarget:action:forControlEvents:方法為一個button添加了很多點擊事件,在某個時刻想一次刪除怎么辦?只需要調用下邊這句代碼?[youButton?removeTarget:nil?action:nil?forControlEvents:UIControlEventAllEvents];?103、某個字體的高度font.lineHeight;?104、刪除某個view所有的子視圖?[[someView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];?105、刪除NSUserDefaults所有記錄?//方法一?NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier]; [[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];?//方法二 - (void)resetDefaults {?NSUserDefaults * defs = [NSUserDefaults standardUserDefaults];NSDictionary * dict = [defs dictionaryRepresentation];?for (id key?in dict) { [defs removeObjectForKey:key]; } [defs synchronize]; }// 方法三[[NSUserDefaults standardUserDefaults] setPersistentDomain:[NSDictionary dictionary] forName:[[NSBundle mainBundle] bundleIdentifier]];?106、禁用系統滑動返回功能?- (void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated];if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {self.navigationController.interactivePopGestureRecognizer.delegate =?self; }}- (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated];?if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {self.navigationController.interactivePopGestureRecognizer.delegate =?nil; }}- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{?return?NO;}?107、模擬器報錯?
模擬器報錯

解決辦法:
打開模擬器->Simulator->Reset Content and Settings...
如果不行,就重啟試試!

108、自定義cell選中背景顏色?UIView *bgColorView =?[[UIView alloc] init];bgColorView.backgroundColor =?[UIColor redColor];[cell setSelectedBackgroundView:bgColorView];?109、UILabel設置內邊距?子類化UILabel,重寫drawTextInRect方法- (void)drawTextInRect:(CGRect)rect {?// 邊距,上左下右?UIEdgeInsets insets = {0,?5,?0,?5}; [super drawTextInRect:UIEdgeInsetsInsetRect(rect, insets)];}?110、UILabel設置文字描邊?子類化UILabel,重寫drawTextInRect方法- (void)drawTextInRect:(CGRect)rect{?CGContextRef c =?UIGraphicsGetCurrentContext();?// 設置描邊寬度?CGContextSetLineWidth(c,?1);?CGContextSetLineJoin(c, kCGLineJoinRound);?CGContextSetTextDrawingMode(c, kCGTextStroke);?// 描邊顏色?self.textColor = [UIColor redColor]; [super drawTextInRect:rect];?// 文本顏色?self.textColor = [UIColor yellowColor];CGContextSetTextDrawingMode(c, kCGTextFill); [super drawTextInRect:rect];}111、使用模擬器截圖

快捷鍵command + s
或者File->Save Screen Shot

112、scrollView滾動到最下邊?CGPoint?bottomOffset = CGPointMake(0,?scrollView.contentSize.height -?scrollView.bounds.size.height);[scrollView setContentOffset:bottomOffset animated:YES];?113、UIView背景顏色漸變UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0,?0,?320,?100)]; [self.view addSubview:view];?CAGradientLayer *gradient = [CAGradientLayer layer]; gradient.frame = view.bounds; gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor blackColor]?CGColor], (id)[[UIColor whiteColor]?CGColor],?nil]; [view.layer insertSublayer:gradient atIndex:0];?114、停止UIView動畫?[yourView.layer removeAllAnimations]?115、為UIView某個角添加圓角?// 左上角和右下角添加圓角UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view.bounds byRoundingCorners:(UIRectCornerTopLeft |?UIRectCornerBottomRight) cornerRadii:CGSizeMake(20,?20)];?CAShapeLayer *maskLayer = [CAShapeLayer layer]; maskLayer.frame = view.bounds; maskLayer.path = maskPath.CGPath; view.layer.mask = maskLayer;?116、刪除Xcode Derived data緩存數據

依次點擊Xcode -> Preferences -> location,然后點擊 Derived data路徑后到小箭頭,刪除這個文件夾下的數據就可以了,如圖

?
Xcode Derived data

117、將一個view放置在其兄弟視圖的最上面?[parentView bringSubviewToFront:yourView]?118、將一個view放置在其兄弟視圖的最下面[parentView sendSubviewToBack:yourView]?119、讓手機震動一下?倒入框架#import <AudioToolbox/AudioToolbox.h>AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);或者AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);120、layoutSubviews方法什么時候調用?

1、init方法不會調用
2、addSubview方法等時候會調用
3、bounds改變的時候調用
4、scrollView滾動的時候會調用scrollView的layoutSubviews方法(所以不建議在scrollView的layoutSubviews方法中做復雜邏輯)
5、旋轉設備的時候調用
6、子視圖被移除的時候調用
參考請看:http://blog.logichigh.com/2011/03/16/when-does-layoutsubviews-get-called/

121、讓UILabel在指定的地方換行?// 換行符為/n,在需要換行的地方加上這個符號即可,如?label.numberOfLines = 0;label.text = @"此處/n換行";?122、搖一搖功能1、打開搖一搖功能 [UIApplication sharedApplication].applicationSupportsShakeToEdit =?YES;2、讓需要搖動的控制器成為第一響應者[self becomeFirstResponder];3、實現以下方法// 開始搖動- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event// 取消搖動- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event// 搖動結束- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event?123、獲取圖片大小?CGFloat imageWidth =?image.size.width; CGFloat imageHeight = imageWidth *?image.scale;?124、獲取view的坐標在整個window上的位置?// v上的(0, 0)點在toView上的位置CGPoint point = [v convertPoint:CGPointMake(0,?0) toView:[UIApplication sharedApplication].windows.lastObject];或者CGPoint point = [v.superview convertPoint:v.frame.origin toView:[UIApplication sharedApplication].windows.lastObject];?125、提交App Store審核程序限制

您的應用程序的未壓縮大小必須小于4GB。每個Mach-O可執行文件(例如app_name.app/app_name)不能超過這些限制:
對于MinimumOSVersion小于7.0的應用程序:TEXT二進制文件中所有部分的總數最多為80 MB 。
對于MinimumOSVersion7.x到8.x的應用程序:TEXT對于二進制文件中每個體系結構片段的每個片段,最大為60 MB 。
對于MinimumOSVersion9.0或更高版本的應用程序:__TEXT二進制文件中所有部分的總數最多為500 MB 。參閱:iTunes Connect開發者指南

126、修改UISegmentedControl的字體大小?[segment?setTitleTextAttributes:@{NSFontAttributeName : [UIFont?systemFontOfSize:15.0f]}?forState:UIControlStateNormal];?127、在非ViewController的地方彈出UIAlertController對話框?// 最好抽成一個分類UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Title" message:@"message" preferredStyle:UIAlertControllerStyleAlert];//...id rootViewController = [UIApplication sharedApplication].delegate.window.rootViewController;if([rootViewController isKindOfClass:[UINavigationController?class]]){ rootViewController = ((UINavigationController *)rootViewController).viewControllers.firstObject;}if([rootViewController isKindOfClass:[UITabBarController?class]]){ rootViewController = ((UITabBarController *)rootViewController).selectedViewController;}[rootViewController presentViewController:alertController animated:YES completion:nil];?128、獲取一個view所屬的控制器?// view分類方法- (UIViewController *)belongViewController {?for (UIView *next = [self superview]; next; next = next.superview) {?UIResponder* nextResponder = [next nextResponder];?if ([nextResponder isKindOfClass:[UIViewController?class]]) {?return (UIViewController *)nextResponder; } }?return?nil;}?129、UIImage和base64互轉?// view分類方法- (NSString *)encodeToBase64String:(UIImage *)image {?return [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];}- (UIImage *)decodeBase64ToImage:(NSString *)strEncodeData {NSData *data = [[NSData alloc]initWithBase64EncodedString:strEncodeData options:NSDataBase64DecodingIgnoreUnknownCharacters];?return [UIImage imageWithData:data];}?130、UIWebView設置背景透明?[webView setBackgroundColor:[UIColor clearColor]];[webView setOpaque:NO];?131、判斷NSDate是不是今天?NSDateComponents *otherDay = [[NSCalendar currentCalendar] components:NSCalendarUnitEra |?NSCalendarUnitYear |?NSCalendarUnitMonth |?NSCalendarUnitDay fromDate:aDate];NSDateComponents *today = [[NSCalendar currentCalendar] components:NSCalendarUnitEra |?NSCalendarUnitYear |?NSCalendarUnitMonth |?NSCalendarUnitDay fromDate:[NSDate date]];if([today day] == [otherDay day] &;&; [today month] == [otherDay month] &;&; [today year] == [otherDay year] &;&; [today era] == [otherDay era]) {?// 是今天}132、設置tableView分割線顏色?[self.tableView setSeparatorColor:[UIColor myColor]];?133、設置屏幕方向?NSNumber *orientationTarget = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeLeft];[[UIDevice currentDevice] setValue:orientationTarget forKey:@"orientation"];[UIViewController attemptRotationToDeviceOrientation];?134、比較兩個顏色是否相等?- (BOOL)isEqualToColor:(UIColor *)otherColor {?CGColorSpaceRef colorSpaceRGB =?CGColorSpaceCreateDeviceRGB();?UIColor *(^convertColorToRGBSpace)(UIColor*) = ^(UIColor *color) {?if (CGColorSpaceGetModel(CGColorGetColorSpace(color.CGColor)) == kCGColorSpaceModelMonochrome) {?const?CGFloat *oldComponents =?CGColorGetComponents(color.CGColor);?CGFloat components[4] = {oldComponents[0], oldComponents[0], oldComponents[0], oldComponents[1]};?CGColorRef colorRef =?CGColorCreate( colorSpaceRGB, components );?UIColor *color = [UIColor colorWithCGColor:colorRef];CGColorRelease(colorRef);?return color; }?else?return color; };?UIColor *selfColor = convertColorToRGBSpace(self); otherColor = convertColorToRGBSpace(otherColor);CGColorSpaceRelease(colorSpaceRGB);?return [selfColor isEqual:otherColor];}?135、tableViewCell分割線頂到頭?- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { [cell setSeparatorInset:UIEdgeInsetsZero]; [cell setLayoutMargins:UIEdgeInsetsZero]; cell.preservesSuperviewLayoutMargins =?NO;}- (void)viewDidLayoutSubviews { [self.tableView setSeparatorInset:UIEdgeInsetsZero]; [self.tableView setLayoutMargins:UIEdgeInsetsZero];}?136、不讓控制器的view隨著控制器的xib拉伸或壓縮?self.view.autoresizingMask =?UIViewAutoresizingFlexibleWidth |?UIViewAutoresizingFlexibleHeight;?137、cocoaPods報錯 : [!] Unable to add a source with url?https://github.com/CocoaPods/Specs.git?named?master-1.

You can try adding it manually in?~/.cocoapods/repos?or via?pod repo add.

解決方法:這是因為電腦里安裝了另外一個Xcode導致cocoapods找不到路徑了
在終端執行 sudo xcode-select -switch /Applications/Xcode.app 即可

138、安裝cocoapods的時候出現 ERROR: While executing gem ... (Errno::EPERM)?Operation?not permitted -?/usr/bin/pod

解決辦法:直接在終端執行 sudo gem install -n /usr/local/bin cocoapods

139、在狀態欄增加網絡請求的菊花,類似safari加載網頁的時候狀態欄菊花[UIApplication?sharedApplication].networkActivityIndicatorVisible = YES;?140、檢查一個rect是否包含一個point?// point是否在rect內BOOL isContains = CGRectContainsPoint(rect,?point);?141、在指定的寬度下,讓UILabel自動設置最佳font?label.adjustsFontSizeToFitWidth = YES;?142、將一個image保存在相冊中?UIImageWriteToSavedPhotosAlbum(image,?nil,?nil,?nil);或者#import?<Photos/Photos.h>[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ PHAssetChangeRequest *changeRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:image]; changeRequest.creationDate = [NSDate date]; } completionHandler:^(BOOL success,?NSError *error) {?if (success) {?NSLog(@"successfully saved"); }?else {?NSLog(@"error saving to photos: %@", error); } }];?143、修改cell.imageView的大小?UIImage *icon = [UIImage imageNamed:@""];CGSize itemSize =?CGSizeMake(30,?30);UIGraphicsBeginImageContextWithOptions(itemSize,?NO ,0.0);CGRect imageRect =?CGRectMake(0.0,?0.0, itemSize.width, itemSize.height);[icon drawInRect:imageRect];cell.imageView.image =?UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();?144、為一個view添加虛線邊框?CAShapeLayer *border = [CAShapeLayer layer];?border.strokeColor = [UIColor colorWithRed:67/255.0f green:37/255.0f?blue:83/255.0f alpha:1].CGColor;?border.fillColor = nil;?border.lineDashPattern =?@[@4, @2];?border.path = [UIBezierPath?bezierPathWithRect:view.bounds].CGPath;?border.frame = view.bounds; [view.layer?addSublayer:border];?145、UITextView中打開或禁用復制,剪切,選擇,全選等功能?// 繼承UITextView重寫這個方法- (BOOL)canPerformAction:(SEL)action?withSender:(id)sender{// 返回NO為禁用,YES為開啟?// 粘貼?if (action ==?@selector(paste:))?return?NO;?// 剪切?if (action ==?@selector(cut:))?return?NO;?// 復制?if (action ==?@selector(copy:))?return?NO;?// 選擇?if (action ==?@selector(select:))?return?NO;?// 選中全部?if (action ==?@selector(selectAll:))?return?NO;?// 刪除?if (action ==?@selector(delete:))?return?NO;?// 分享?if (action ==?@selector(share))?return?NO;?return?[super canPerformAction:action withSender:sender];}?1、設置UILabel行間距NSMutableAttributedString* attrString = [[NSMutableAttributedString alloc] initWithString:label.text]; NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init]; [style setLineSpacing:20]; [attrString addAttribute:NSParagraphStyleAttributeName value:style range:NSMakeRange(0,?label.text.length)];?label.attributedText = attrString;

// 或者使用xib,看下gif圖

?
Untitled.gif

2、當使用-performSelector:withObject:withObject:afterDelay:方法時,需要傳入多參數問題?// 方法一、// 把參數放進一個數組/字典,直接把數組/字典當成一個參數傳過去,具體方法實現的地方再解析這個數組/字典NSArray * array = [NSArray?arrayWithObjects: @"first", @"second", nil];[self?performSelector:@selector(fooFirstInput:)?withObject: array?afterDelay:15.0];// 方法二、// 使用NSInvocationSEL aSelector = NSSelectorFromString(@"doSoming:argument2:"); NSInteger argument1 =?10; NSString *argument2 = @"argument2";?if([self?respondsToSelector:aSelector]) { NSInvocation *inv = [NSInvocation?invocationWithMethodSignature:[self?methodSignatureForSelector:aSelector]]; [inv?setSelector:aSelector]; [inv?setTarget:self]; [inv?setArgument:&;(argument1)?atIndex:2]; [inv?setArgument:&;(argument2)?atIndex:3]; [inv?performSelector:@selector(invoke)?withObject:nil?afterDelay:15.0]; }?3、UILabel顯示不同顏色字體?NSMutableAttributedString * string = [[NSMutableAttributedString alloc] initWithString:label.text];[string addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0,5)];[string addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(5,6)];[string addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(11,5)];label.attributedText = string;?4、比較兩個CGRect/CGSize/CGPoint是否相等?if (CGRectEqualToRect(rect1, rect2)) {?// 兩個區域相等?//?do some }?if (CGPointEqualToPoint(point1, point2)) {?// 兩個點相等?//?do some }?if (CGSizeEqualToSize(size1, size2)) {?// 兩個size相等?//?do some }?5、比較兩個NSDate相差多少小時?NSDate* date1 = someDate;?NSDate* date2 = someOtherDate;?NSTimeInterval distanceBetweenDates = [date1 timeIntervalSinceDate:date2];?double secondsInAnHour =?3600;// 除以3600是把秒化成小時,除以60得到結果為相差的分鐘數?NSInteger hoursBetweenDates = distanceBetweenDates / secondsInAnHour;?6、每個cell之間增加間距?// 方法一,每個分區只顯示一行cell,分區頭當作你想要的間距(注意,從數據源數組中取值的時候需要用indexPath.section而不是indexPath.row)- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{?return yourArry.count;}- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{?return?1;}-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{?return cellSpacingHeight;}// 方法二,在cell的contentView上加個稍微低一點的view,cell上原本的內容放在你的view上,而不是contentView上,這樣能偽造出一個間距來。// 方法三,自定義cell,重寫setFrame:方法- (void)setFrame:(CGRect)frame{ frame.size.height -=?20; [super setFrame:frame];}?7、播放一張張連續的圖片?// 加入現在有三張圖片分別為animate_1、animate_2、animate_3// 方法一 imageView.animationImages = @[[UIImage?imageNamed:@"animate_1"], [UIImage?imageNamed:@"animate_2"], [UIImage?imageNamed:@"animate_3"]];imageView.animationDuration =?1.0;// 方法二 imageView.image = [UIImage?animatedImageNamed:@"animate_"?duration:1.0];// 方法二解釋下,這個方法會加載animate_為前綴的,后邊0-1024,也就是animate_0、animate_1一直到animate_1024?8、加載gif圖片

推薦使用這個框架?FLAnimatedImage

9、防止離屏渲染為image添加圓角?// image分類- (UIImage *)circleImage{// NO代表透明UIGraphicsBeginImageContextWithOptions(self.size,?NO,?1);// 獲得上下文CGContextRef ctx =?UIGraphicsGetCurrentContext();// 添加一個圓CGRect rect =?CGRectMake(0,?0,?self.size.width,?self.size.height);// 方形變圓形CGContextAddEllipseInRect(ctx, rect);// 裁剪CGContextClip(ctx);// 將圖片畫上去[self drawInRect:rect];UIImage *image =?UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();return image;}?10、查看系統所有字體?// 打印字體for (id familyName?in [UIFont familyNames]) {?NSLog(@"%@", familyName);?for (id fontName?in [UIFont fontNamesForFamilyName:familyName])?NSLog(@" %@", fontName);}// 也可以進入這個網址查看 http://iosfonts.com/?11、獲取隨機數NSInteger i = arc4random();?12、獲取隨機數小數(0-1之間)?#define ARC4RANDOM_MAX 0x100000000double val = ((double)arc4random() / ARC4RANDOM_MAX);?13、AVPlayer視頻播放完成的通知監聽[[NSNotificationCenter defaultCenter]?addObserver:selfselector:@selector(videoPlayEnd) name:AVPlayerItemDidPlayToEndTimeNotification object:nil];?14、判斷兩個rect是否有交叉?if?(CGRectIntersectsRect(rect1, rect2)) {}?15、判斷一個字符串是否為數字?NSCharacterSet *notDigits = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];?if ([str rangeOfCharacterFromSet:notDigits].location ==?NSNotFound) {?// 是數字 }?else {?// 不是數字 }?16、將一個view保存為pdf格式?- (void)createPDFfromUIView:(UIView*)aView saveToDocumentsWithFileName:(NSString*)aFilename{?NSMutableData *pdfData = [NSMutableData data];UIGraphicsBeginPDFContextToData(pdfData, aView.bounds,?nil);UIGraphicsBeginPDFPage();?CGContextRef pdfContext =?UIGraphicsGetCurrentContext(); [aView.layer renderInContext:pdfContext];UIGraphicsEndPDFContext();?NSArray* documentDirectories =?NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,?NSUserDomainMask,YES);?NSString* documentDirectory = [documentDirectories objectAtIndex:0];?NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:aFilename]; [pdfData writeToFile:documentDirectoryFilename atomically:YES];NSLog(@"documentDirectoryFileName: %@",documentDirectoryFilename);}17、讓一個view在父視圖中心?child.center =?[parent convertPoint:parent.center fromView:parent.superview];?18、獲取當前導航控制器下前一個控制器?- (UIViewController *)backViewController{?NSInteger myIndex = [self.navigationController.viewControllers indexOfObject:self];?if ( myIndex !=?0 &;&; myIndex !=?NSNotFound ) {?return [self.navigationController.viewControllers objectAtIndex:myIndex-1]; }?else {return?nil; }}?19、保存UIImage到本地?NSArray *paths =?NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,?NSUserDomainMask,?YES);NSString *filePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Image.png"];[UIImagePNGRepresentation(image) writeToFile:filePath atomically:YES];?20、鍵盤上方增加工具欄?UIToolbar *keyboardDoneButtonView = [[UIToolbar alloc] init];[keyboardDoneButtonView sizeToFit];UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:@selector(doneClicked:)];[keyboardDoneButtonView setItems:[NSArray arrayWithObjects:doneButton,?nil]];txtField.inputAccessoryView = keyboardDoneButtonView;?21、copy一個view

因為UIView沒有實現copy協議,因此找不到copyWithZone方法,使用copy的時候導致崩潰
但是我們可以通過歸檔再解檔實現copy,這相當于對視圖進行了一次深拷貝,代碼如下

id copyOfView = [NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:originalView]];?22、在image上繪制文字并生成新的image?UIFont *font = [UIFont boldSystemFontOfSize:12]; UIGraphicsBeginImageContext(image.size); [image drawInRect:CGRectMake(0,0,image.size.width,image.size.height)]; CGRect?rect = CGRectMake(point.x,?point.y,?image.size.width,?image.size.height); [[UIColor whiteColor]?set]; [text drawInRect:CGRectIntegral(rect) withFont:font]; UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext();?23、判斷一個view是否為另一個view的子視圖?// 如果myView是self.view本身,也會返回yesBOOL isSubView = [myView isDescendantOfView:self.view];?24、判斷一個字符串是否包含另一個字符串?// 方法一、這種方法只適用于iOS8之后,如果是配iOS8之前用方法二if ([str containsString:otherStr])?NSLog(@"包含");// 方法二NSRange range = [str rangeOfString:otherStr];if (range.location !=?NSNotFound)?NSLog(@"包含");25、UICollectionView自動滾動到某行?// 重寫viewDidLayoutSubviews方法-(void)viewDidLayoutSubviews { [super viewDidLayoutSubviews]; [self.collectionView?scrollToItemAtIndexPath:indexPath?atScrollPosition:UICollectionViewScrollPositionCenteredVertically?animated:NO];}?26、修改系統UIAlertController?// 但是據說這種方法會被App Store拒絕(慎用!)UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"" message:@"" preferredStyle:UIAlertControllerStyleActionSheet];?NSMutableAttributedString *hogan = [[NSMutableAttributedString alloc] initWithString:@"我是一個大文本"]; [hogan addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:30] range:NSMakeRange(4,?1)]; [hogan addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(4,?1)]; [alertVC setValue:hogan forKey:@"attributedTitle"];?UIAlertAction *button = [UIAlertAction actionWithTitle:@"Label text" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){ }];?UIImage *accessoryImage = [UIImage imageNamed:@"1"]; [button setValue:accessoryImage forKey:@"image"]; [alertVC addAction:button]; [self presentViewController:alertVC animated:YES completion:nil];?27、判斷某一行的cell是否已經顯示?CGRect cellRect = [tableView rectForRowAtIndexPath:indexPath];BOOL completelyVisible = CGRectContainsRect(tableView.bounds, cellRect);?28、讓導航控制器pop回指定的控制器?NSMutableArray *allViewControllers = [NSMutableArray arrayWithArray:[self.navigationController viewControllers]];for (UIViewController *aViewController?in allViewControllers) {?if ([aViewController isKindOfClass:[RequiredViewController?class]]) { [self.navigationController popToViewController:aViewController animated:NO]; }}?29、動畫修改label上的文字?// 方法一CATransition *animation = [CATransition animation]; animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; animation.type = kCATransitionFade; animation.duration =?0.75; [self.label.layer addAnimation:animation forKey:@"kCATransitionFade"];?self.label.text =?@"New";// 方法二[UIView transitionWithView:self.label duration:0.25f options:UIViewAnimationOptionTransitionCrossDissolve animations:^{self.label.text =?@"Well done!"; } completion:nil];// 方法三[UIView animateWithDuration:1.0 animations:^{?self.label.alpha =?0.0f;?self.label.text =?@"newText";?self.label.alpha =?1.0f; }];?30、判斷字典中是否包含某個key值?if ([dic?objectForKey:@"yourKey"]) {?NSLog(@"有這個值");}?else {?NSLog(@"沒有這個值");}?31、獲取屏幕方向?UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;if(orientation ==?0)?//Default orientation?//默認else?if(orientation ==?UIInterfaceOrientationPortrait)?//豎屏else?if(orientation ==?UIInterfaceOrientationLandscapeLeft)?// 左橫屏else?if(orientation ==?UIInterfaceOrientationLandscapeRight)?//右橫屏?32、設置UIImage的透明度?// 方法一、添加UIImage分類- (UIImage *)imageByApplyingAlpha:(CGFloat) alpha {UIGraphicsBeginImageContextWithOptions(self.size,?NO,?0.0f);?CGContextRef ctx =?UIGraphicsGetCurrentContext();?CGRect area =?CGRectMake(0,?0,?self.size.width,?self.size.height);?CGContextScaleCTM(ctx,?1,?-1);CGContextTranslateCTM(ctx,?0, -area.size.height);CGContextSetBlendMode(ctx, kCGBlendModeMultiply);CGContextSetAlpha(ctx, alpha);?CGContextDrawImage(ctx, area,?self.CGImage);?UIImage *newImage =?UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();?return newImage;}// 方法二、如果沒有奇葩需求,干脆用UIImageView設置透明度UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageWithName:@"yourImage"]];imageView.alpha =?0.5;?33、Attempt to mutate immutable object with insertString:atIndex:

這個錯是因為你拿字符串調用insertString:atIndex:方法的時候,調用對象不是NSMutableString,應該先轉成這個類型再調用

34、UIWebView添加單擊手勢不響應?UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(webViewClick)]; tap.delegate =?self; [_webView addGestureRecognizer:tap];// 因為webView本身有一個單擊手勢,所以再添加會造成手勢沖突,從而不響應。需要綁定手勢代理,并實現下邊的代理方法- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{?return?YES;}?35、獲取手機RAM容量?// 需要導入#import <mach/mach.h>mach_port_t host_port;?mach_msg_type_number_t host_size;?vm_size_t pagesize; host_port = mach_host_self(); host_size =?sizeof(vm_statistics_data_t) /?sizeof(integer_t); host_page_size(host_port, &;pagesize);?vm_statistics_data_t vm_stat;?if (host_statistics(host_port, HOST_VM_INFO, (host_info_t)&;vm_stat, &;host_size) != KERN_SUCCESS) { NSLog(@"Failed to fetch vm statistics"); }?/* Stats in bytes */?natural_t mem_used = (vm_stat.active_count + vm_stat.inactive_count + vm_stat.wire_count) * pagesize;?natural_t mem_free = vm_stat.free_count * pagesize;?natural_t mem_total = mem_used + mem_free; NSLog(@"已用: %u 可用: %u 總共: %u", mem_used, mem_free, mem_total);?36、地圖上兩個點之間的實際距離?// 需要導入#import <CoreLocation/CoreLocation.h>CLLocation *locA = [[CLLocation alloc]?initWithLatitude:34?longitude:113]; CLLocation *locB = [[CLLocation alloc]?initWithLatitude:31.05?longitude:121.76];// CLLocationDistance求出的單位為米 CLLocationDistance distance = [locA?distanceFromLocation:locB];?37、在應用中打開設置的某個界面?// 打開設置->通用[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General"]];// 以下是設置其他界面prefs:root=General&;path=Aboutprefs:root=General&;path=ACCESSIBILITYprefs:root=AIRPLANE_MODEprefs:root=General&;path=AUTOLOCKprefs:root=General&;path=USAGE/CELLULAR_USAGEprefs:root=Brightnessprefs:root=Bluetoothprefs:root=General&;path=DATE_AND_TIMEprefs:root=FACETIMEprefs:root=Generalprefs:root=General&;path=Keyboardprefs:root=CASTLEprefs:root=CASTLE&;path=STORAGE_AND_BACKUPprefs:root=General&;path=INTERNATIONALprefs:root=LOCATION_SERVICESprefs:root=ACCOUNT_SETTINGSprefs:root=MUSICprefs:root=MUSIC&;path=EQprefs:root=MUSIC&;path=VolumeLimitprefs:root=General&;path=Networkprefs:root=NIKE_PLUS_IPODprefs:root=NOTESprefs:root=NOTIFICATIONS_IDprefs:root=Phoneprefs:root=Photosprefs:root=General&;path=ManagedConfigurationListprefs:root=General&;path=Resetprefs:root=Sounds&;path=Ringtoneprefs:root=Safariprefs:root=General&;path=Assistantprefs:root=Soundsprefs:root=General&;path=SOFTWARE_UPDATE_LINKprefs:root=STOREprefs:root=TWITTERprefs:root=FACEBOOKprefs:root=General&;path=USAGE prefs:root=VIDEOprefs:root=General&;path=Network/VPNprefs:root=Wallpaperprefs:root=WIFIprefs:root=INTERNET_TETHERINGprefs:root=Phone&;path=Blockedprefs:root=DO_NOT_DISTURB?38、在UITextView中顯示html文本UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(20,?30,?100,?199)]; textView.backgroundColor = [UIColor redColor]; [self.view addSubview:textView];?NSString *htmlString =?@"<h1>Header</h1><h2>Subheader</h2>Some <em>text</em>![](http://blogs.babble.com/famecrawler/files/2010/11/mickey_mouse-1097.jpg)";?NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData: [htmlString dataUsingEncoding:NSUnicodeStringEncoding] options: @{?NSDocumentTypeDocumentAttribute:?NSHTMLTextDocumentType } documentAttributes:?nil error:?nil]; textView.attributedText = attributedString;?39、監聽scrollView是否滾動到了頂部/底部?-(void)scrollViewDidScroll: (UIScrollView*)scrollView{?float scrollViewHeight = scrollView.frame.size.height;?float scrollContentSizeHeight = scrollView.contentSize.height;?float scrollOffset = scrollView.contentOffset.y;?if (scrollOffset ==?0) {?// 滾動到了頂部 }?else?if (scrollOffset + scrollViewHeight == scrollContentSizeHeight) {?// 滾動到了底部 }}?40、UISlider增量/減量為固定值(假如為5)?- (void)setupSlider{ UISlider *slider = [[UISlider alloc] init]; [self.view?addSubview:slider]; [slider?addTarget:self?action:@selector(sliderAction:)?forControlEvents:UIControlEventValueChanged]; slider.maximumValue =?100; slider.minimumValue =?0; slider.frame = CGRectMake(200,?20,?100,?30);}- (void)sliderAction:(UISlider *)slider{ [slider?setValue:((int)((slider.value +?2.5) /?5) *?5)?animated:NO];}?41、選中textField或者textView所有文本(我這里以textView為例)?[self.textView setSelectedTextRange:[self.textView textRangeFromPosition:self.textView.beginningOfDocument toPosition:self.textView.endOfDocument]]?42、從導航控制器中刪除某個控制器// 方法一、知道這個控制器所處的導航控制器下標NSMutableArray *navigationArray = [[NSMutableArray alloc] initWithArray:?self.navigationController.viewControllers];[navigationArray removeObjectAtIndex:?2];?self.navigationController.viewControllers = navigationArray;// 方法二、知道具體是哪個控制器NSArray* tempVCA = [self.navigationController viewControllers];for(UIViewController *tempVC?in tempVCA){?if([tempVC isKindOfClass:[urViewControllerClass?class]]) { [tempVC removeFromParentViewController]; }}?43、隱藏UITextView/UITextField光標?textField.tintColor = [UIColor clearColor];?44、當UITextView/UITextField中沒有文字時,禁用回車鍵textField.enablesReturnKeyAutomatically?=?YES;?45、字符串encode編碼(編碼url字符串不成功的問題)?// 我們一般用這個方法處理stringByAddingPercentEscapesUsingEncoding但是這個方法好想不會處理/和&;這種特殊符號,這種情況就需要用下邊這個方法處理@implementation?NSString (NSString_Extended)- (NSString *)urlencode {?NSMutableString *output = [NSMutableString string];?const?unsigned?char *source = (const?unsigned?char *)[self UTF8String];?int sourceLen = strlen((const?char *)source);?for (int i =?0; i < sourceLen; ++i) {?const?unsigned?char thisChar = source[i];?if (thisChar ==?' '){ [output appendString:@"+"]; }?else?if (thisChar ==?'.' || thisChar ==?'-' || thisChar ==?'_' || thisChar ==?'~' || (thisChar >=?'a' &;&; thisChar <=?'z') || (thisChar >=?'A' &;&; thisChar <=?'Z') || (thisChar >=?'0' &;&; thisChar <=?'9')) { [output appendFormat:@"%c", thisChar]; }?else { [output appendFormat:@"%%%02X", thisChar]; } }?return output;}?46、計算UILabel上某段文字的frame?@implementation?UILabel (TextRect)- (CGRect)boundingRectForCharacterRange:(NSRange)range{?NSTextStorage *textStorage = [[NSTextStorage alloc] initWithAttributedString:[self attributedText]];?NSLayoutManager *layoutManager = [[NSLayoutManager alloc] init]; [textStorage addLayoutManager:layoutManager];?NSTextContainer *textContainer = [[NSTextContainer alloc] initWithSize:[self bounds].size]; textContainer.lineFragmentPadding =?0; [layoutManager addTextContainer:textContainer];?NSRange glyphRange; [layoutManager characterRangeForGlyphRange:range actualGlyphRange:&;glyphRange];return [layoutManager boundingRectForGlyphRange:glyphRange inTextContainer:textContainer];}?47、獲取隨機UUID?NSString *result;if([[[UIDevice currentDevice] systemVersion] floatValue] >?6.0) { result = [[NSUUID UUID] UUIDString]; }?else {?CFUUIDRef uuidRef =?CFUUIDCreate(NULL);?CFStringRef uuid =?CFUUIDCreateString(NULL, uuidRef);?CFRelease(uuidRef); result = (__bridge_transfer?NSString *)uuid; }48、仿蘋果抖動動畫?#define RADIANS(degrees) (((degrees) * M_PI) / 180.0)- (void)startAnimate { view.transform =?CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(-5)); [UIView animateWithDuration:0.25 delay:0.0 options:(UIViewAnimationOptionAllowUserInteraction |?UIViewAnimationOptionRepeat |?UIViewAnimationOptionAutoreverse) animations:^ { view.transform =?CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(5)); } completion:nil];}- (void)stopAnimate { [UIView animateWithDuration:0.25 delay:0.0 options:(UIViewAnimationOptionAllowUserInteraction |?UIViewAnimationOptionBeginFromCurrentState |?UIViewAnimationOptionCurveLinear) animations:^ { view.transform =?CGAffineTransformIdentity; } completion:nil];}?49、修改UISearBar內部背景顏色UITextField *textField = [_searchBar valueForKey:@"_searchField"];textField.backgroundColor = [UIColor redColor];50、UITextView滾動到頂部?// 方法一 [self.textView scrollRangeToVisible:NSMakeRange(0,?0)];?// 方法二 [self.textView setContentOffset:CGPointZero animated:YES];?51、通知監聽APP生命周期

UIApplicationDidEnterBackgroundNotification 應用程序進入后臺
UIApplicationWillEnterForegroundNotification 應用程序將要進入前臺
UIApplicationDidFinishLaunchingNotification 應用程序完成啟動
UIApplicationDidFinishLaunchingNotification 應用程序由掛起變的活躍
UIApplicationWillResignActiveNotification 應用程序掛起(有電話進來或者鎖屏)
UIApplicationDidReceiveMemoryWarningNotification 應用程序收到內存警告
UIApplicationDidReceiveMemoryWarningNotification 應用程序終止(后臺殺死、手機關機等)
UIApplicationSignificantTimeChangeNotification 當有重大時間改變(凌晨0點,設備時間被修改,時區改變等)
UIApplicationWillChangeStatusBarOrientationNotification 設備方向將要改變
UIApplicationDidChangeStatusBarOrientationNotification 設備方向改變
UIApplicationWillChangeStatusBarFrameNotification 設備狀態欄frame將要改變
UIApplicationDidChangeStatusBarFrameNotification 設備狀態欄frame改變
UIApplicationBackgroundRefreshStatusDidChangeNotification 應用程序在后臺下載內容的狀態發生變化
UIApplicationProtectedDataWillBecomeUnavailable 本地受保護的文件被鎖定,無法訪問
UIApplicationProtectedDataWillBecomeUnavailable 本地受保護的文件可用了

52、觸摸事件類型

UIControlEventTouchCancel 取消控件當前觸發的事件
UIControlEventTouchDown 點按下去的事件
UIControlEventTouchDownRepeat 重復的觸動事件
UIControlEventTouchDragEnter 手指被拖動到控件的邊界的事件
UIControlEventTouchDragExit 一個手指從控件內拖到外界的事件
UIControlEventTouchDragInside 手指在控件的邊界內拖動的事件
UIControlEventTouchDragOutside 手指在控件邊界之外被拖動的事件
UIControlEventTouchUpInside 手指處于控制范圍內的觸摸事件
UIControlEventTouchUpOutside 手指超出控制范圍的控制中的觸摸事件

53、UITextField文字周圍增加邊距?// 子類化UITextField,增加insert屬性@interface?WZBTextField :?UITextField@property (nonatomic,?assign)?UIEdgeInsets insets;@end// 在.m文件重寫下列方法- (CGRect)textRectForBounds:(CGRect)bounds {?CGRect paddedRect =?UIEdgeInsetsInsetRect(bounds,?self.insets);?if (self.rightViewMode ==?UITextFieldViewModeAlways ||?self.rightViewMode ==?UITextFieldViewModeUnlessEditing) {?return [self adjustRectWithWidthRightView:paddedRect]; }?return paddedRect;}- (CGRect)placeholderRectForBounds:(CGRect)bounds {?CGRect paddedRect =?UIEdgeInsetsInsetRect(bounds,?self.insets);?if (self.rightViewMode ==?UITextFieldViewModeAlways ||?self.rightViewMode ==?UITextFieldViewModeUnlessEditing) {?return [self adjustRectWithWidthRightView:paddedRect]; }?return paddedRect;}- (CGRect)editingRectForBounds:(CGRect)bounds {?CGRect paddedRect =?UIEdgeInsetsInsetRect(bounds,?self.insets);?if (self.rightViewMode ==?UITextFieldViewModeAlways ||?self.rightViewMode ==?UITextFieldViewModeWhileEditing) {?return [self adjustRectWithWidthRightView:paddedRect]; }?return paddedRect;}- (CGRect)adjustRectWithWidthRightView:(CGRect)bounds {?CGRect paddedRect = bounds; paddedRect.size.width -=?CGRectGetWidth(self.rightView.frame);?return paddedRect;}?54、監聽UISlider拖動狀態?// 添加事件[slider addTarget:self action:@selector(sliderValurChanged:forEvent:) forControlEvents:UIControlEventValueChanged];// 實現方法- (void)sliderValurChanged:(UISlider*)slider forEvent:(UIEvent*)event {?UITouch *touchEvent = [[event allTouches] anyObject];?switch (touchEvent.phase) {case?UITouchPhaseBegan:?NSLog(@"開始拖動");?break;?case?UITouchPhaseMoved:?NSLog(@"正在拖動");?break;?case?UITouchPhaseEnded:NSLog(@"結束拖動");?break;?default:?break; }}?55、設置UITextField光標位置?// textField需要設置的textField,index要設置的光標位置- (void)cursorLocation:(UITextField *)textField?index:(NSInteger)index{ NSRange range = NSMakeRange(index,?0); UITextPosition *start = [textField?positionFromPosition:[textField beginningOfDocument]?offset:range.location]; UITextPosition *end = [textField?positionFromPosition:start?offset:range.length]; [textField?setSelectedTextRange:[textField?textRangeFromPosition:start?toPosition:end]];}?56、去除webView底部黑色[webView setBackgroundColor:[UIColor clearColor]]; [webView setOpaque:NO];?for (UIView *v1?in [webView subviews]) {?if ([v1 isKindOfClass:[UIScrollView?class]]) {?for (UIView *v2?in v1.subviews) {?if ([v2 isKindOfClass:[UIImageView?class]]) { v2.hidden =?YES; } } } }?57、獲取collectionViewCell在屏幕中的frame?UICollectionViewLayoutAttributes?*attributes?=?[collectionView?layoutAttributesForItemAtIndexPath:indexPath];CGRect?cellRect?=?attributes.frame;CGRect?cellFrameInSuperview?=?[collectionView?convertRect:cellRect?toView:[cv?superview]];?58、比較兩個UIImage是否相等?- (BOOL)image:(UIImage *)image1 isEqualTo:(UIImage *)image2{?NSData *data1 =?UIImagePNGRepresentation(image1);?NSData *data2 =?UIImagePNGRepresentation(image2);?return [data1 isEqual:data2];}?59、解決當UIScrollView上有UIButton的時候,觸摸到button滑動不了的問題?// 子類化UIScrollView,并重寫以下方法- (instancetype)initWithFrame:(CGRect)frame {?if (self = [super initWithFrame:frame]) {?self.delaysContentTouches =?NO; }return?self;}- (BOOL)touchesShouldCancelInContentView:(UIView *)view {?if ([view isKindOfClass:UIButton.class]) {?return?YES; }?return [super touchesShouldCancelInContentView:view];}?60、UITextView中的文字添加陰影效果?- (void)setTextLayer:(UITextView *)textView color:(UIColor *)color{ CALayer *textLayer = ((CALayer *)[textView.layer.sublayers objectAtIndex:0]); textLayer.shadowColor = color.CGColor; textLayer.shadowOffset = CGSizeMake(0.0f,?1.0f); textLayer.shadowOpacity =?1.0f; textLayer.shadowRadius =?1.0f;}?61、MD5加密?+ (NSString *)md5:(NSString *)str{?const?char *concat_str = [str UTF8String];?unsigned?char result[CC_MD5_DIGEST_LENGTH]; CC_MD5(concat_str, (unsigned?int)strlen(concat_str), result);?NSMutableString *hash = [NSMutableString string];?for (int i =0; i <16; i++){ [hash appendFormat:@"%02X", result[i]]; }return [hash uppercaseString];}?62、base64加密?@interface NSData (Base64)/** * @brief 字符串base64后轉data */+ (NSData *)dataWithBase64EncodedString:(NSString *)string{?if (![string length])?return nil; NSData *decoded = nil;#if __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_9 || __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0?if (![NSData instancesRespondToSelector:@selector(initWithBase64EncodedString:options:)]) {#pragma clang diagnostic push#pragma clang diagnostic ignored?"-Wdeprecated-declarations" decoded = [[self alloc] initWithBase64Encoding:[string stringByReplacingOccurrencesOfString:@"[^A-Za-z0-9+/=]" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, [string length])]];#pragma clang diagnostic pop }?else#endif { decoded = [[self alloc] initWithBase64EncodedString:string options:NSDataBase64DecodingIgnoreUnknownCharacters]; }?return [decoded length]? decoded: nil;}/** * @brief NSData轉string * @param wrapWidth 換行長度 76 64 */- (NSString *)base64EncodedStringWithWrapWidth:(NSUInteger)wrapWidth{?if (![self length])?return nil; NSString *encoded = nil;#if __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_9 || __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0?if (![NSData instancesRespondToSelector:@selector(base64EncodedStringWithOptions:)]) {#pragma clang diagnostic push#pragma clang diagnostic ignored?"-Wdeprecated-declarations" encoded = [self base64Encoding];#pragma clang diagnostic pop }?else#endif {?switch (wrapWidth) {?case?64: {?return [self base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength]; }?case?76: {?return [self base64EncodedStringWithOptions:NSDataBase64Encoding76CharacterLineLength]; }?default: { encoded = [self base64EncodedStringWithOptions:(NSDataBase64EncodingOptions)0]; } } }?if (!wrapWidth || wrapWidth >= [encoded length]) {?return encoded; } wrapWidth = (wrapWidth /?4) *?4; NSMutableString *result = [NSMutableString?string];?for (NSUInteger i =?0; i < [encoded length]; i+= wrapWidth) {?if (i + wrapWidth >= [encoded length]) { [result appendString:[encoded substringFromIndex:i]];?break; } [result appendString:[encoded substringWithRange:NSMakeRange(i, wrapWidth)]]; [result appendString:@"/r/n"]; }?return result;}/** * @brief NSData轉string 換行長度默認64 */- (NSString *)base64EncodedString{?return [self base64EncodedStringWithWrapWidth:0];}?63、AES加密?#import?<CommonCrypto/CommonCryptor.h>@interface?NSData (AES)/** * 利用AES加密數據 */- (NSData*)encryptedWithAESUsingKey:(NSString*)key andIV:(NSData*)iv {?NSData *keyData = [key dataUsingEncoding:NSUTF8StringEncoding]; size_t dataMoved;NSMutableData *encryptedData = [NSMutableData dataWithLength:self.length + kCCBlockSizeAES128]; CCCryptorStatus status = CCCrypt(kCCEncrypt,kCCAlgorithmAES128,kCCOptionPKCS7Padding,keyData.bytes,keyData.length,iv.bytes,self.bytes,self.length,encryptedData.mutableBytes, encryptedData.length,&;dataMoved);?if (status == kCCSuccess) { encryptedData.length = dataMoved;?return encryptedData; }?return?nil;}/** * @brief 利用AES解密據 */- (NSData*)decryptedWithAESUsingKey:(NSString*)key andIV:(NSData*)iv {?NSData *keyData = [key dataUsingEncoding:NSUTF8StringEncoding]; size_t dataMoved;NSMutableData *decryptedData = [NSMutableData dataWithLength:self.length + kCCBlockSizeAES128]; CCCryptorStatus result = CCCrypt(kCCDecrypt,kCCAlgorithmAES128,kCCOptionPKCS7Padding,keyData.bytes,keyData.length,iv.bytes,self.bytes,self.length,decryptedData.mutableBytes, decryptedData.length,&;dataMoved);?if (result == kCCSuccess) { decryptedData.length = dataMoved;?return decryptedData; }?return?nil;}?64、3DES加密?#import?<CommonCrypto/CommonCryptor.h>@interface?NSData (3DES)/** * 利用3DES加密數據 */- (NSData*)encryptedWith3DESUsingKey:(NSString*)key andIV:(NSData*)iv {?NSData *keyData = [key dataUsingEncoding:NSUTF8StringEncoding]; size_t dataMoved;NSMutableData *encryptedData = [NSMutableData dataWithLength:self.length + kCCBlockSize3DES]; CCCryptorStatus result = CCCrypt(kCCEncrypt,kCCAlgorithm3DES,kCCOptionPKCS7Padding,keyData.bytes,keyData.length,iv.bytes,self.bytes,self.length,encryptedData.mutableBytes,encryptedData.length,&;dataMoved);?if (result == kCCSuccess) { encryptedData.length = dataMoved;?return encryptedData; }?return?nil;}/** * @brief 利用3DES解密數據 */- (NSData*)decryptedWith3DESUsingKey:(NSString*)key andIV:(NSData*)iv {?NSData *keyData = [key dataUsingEncoding:NSUTF8StringEncoding]; size_t dataMoved;NSMutableData *decryptedData = [NSMutableData dataWithLength:self.length + kCCBlockSize3DES]; CCCryptorStatus result = CCCrypt(kCCDecrypt,kCCAlgorithm3DES,kCCOptionPKCS7Padding,keyData.bytes,keyData.length,iv.bytes,self.bytes,self.length,decryptedData.mutableBytes,decryptedData.length,&;dataMoved);?if (result == kCCSuccess) { decryptedData.length = dataMoved;?return decryptedData; }?return?nil;}?65、單個頁面多個網絡請求的情況,需要監聽所有網絡請求結束后刷新UIdispatch_group_t group = dispatch_group_create(); dispatch_queue_t serialQueue = dispatch_queue_create("com.wzb.test.www", DISPATCH_QUEUE_SERIAL); dispatch_group_enter(group); dispatch_group_async(group, serialQueue, ^{ // 網絡請求一 [WebClick getDataSuccess:^(ResponseModel *model) { dispatch_group_leave(group); } failure:^(NSString *err) { dispatch_group_leave(group); }]; }); dispatch_group_enter(group); dispatch_group_async(group, serialQueue, ^{ // 網絡請求二 [WebClick getDataSuccess:getBigTypeRM onSuccess:^(ResponseModel *model) { dispatch_group_leave(group); } failure:^(NSString *errorString) { dispatch_group_leave(group); }]; }); dispatch_group_enter(group); dispatch_group_async(group, serialQueue, ^{ // 網絡請求三 [WebClick getDataSuccess:^{ dispatch_group_leave(group); } failure:^(NSString *errorString) { dispatch_group_leave(group); }]; }); // 所有網絡請求結束后會來到這個方法 dispatch_group_notify(group, serialQueue, ^{ dispatch_async(dispatch_get_global_queue(0, 0), ^{ dispatch_async(dispatch_get_main_queue(), ^{ // 刷新UI }); }); });?66、解決openUrl延時問題?// 方法一dispatch_async(dispatch_get_main_queue(), ^{ UIApplication *application = [UIApplication sharedApplication];?if ([application?respondsToSelector:@selector(openURL:options:completionHandler:)]) { [application?openURL:URL?options:@{}?completionHandler:nil]; }?else { [application?openURL:URL]; } });// 方法二[self?performSelector:@selector(redirectToURL:)?withObject:url?afterDelay:0.1];- (void) redirectToURL{UIApplication *application = [UIApplication sharedApplication];?if ([application?respondsToSelector:@selector(openURL:options:completionHandler:)]) { [application?openURL:URL?options:@{}?completionHandler:nil]; }?else { [application?openURL:URL]; }}?67、頁面跳轉實現翻轉動畫?// modal方式 TestViewController *vc = [[TestViewController alloc] init]; vc.view.backgroundColor = [UIColor redColor]; vc.modalTransitionStyle =?UIModalTransitionStyleCoverVertical; [self presentViewController:vc animated:YES completion:nil];// push方式 TestViewController *vc = [[TestViewController alloc] init]; vc.view.backgroundColor = [UIColor redColor]; [UIView beginAnimations:@"View Flip" context:nil]; [UIView setAnimationDuration:0.80]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO]; [self.navigationController pushViewController:vc animated:YES]; [UIView commitAnimations];?68、tableView實現無限滾動?- (void)scrollViewDidScroll:(UIScrollView *)scrollView{CGFloat actualPosition = scrollView.contentOffset.y;?CGFloat contentHeight = scrollView.contentSize.height - scrollView.frame.size.height;?if (actualPosition >= contentHeight) { [self.dataArr addObjectsFromArray:self.dataArr]; [self.tableView reloadData]; }}?69、代碼方式調整屏幕亮度?// brightness屬性值在0-1之間,0代表最小亮度,1代表最大亮度[[UIScreen mainScreen]?setBrightness:0.5];?70、獲取當前應用CUP用量?float?cpu_usage(){kern_return_t kr;?task_info_data_t tinfo;?mach_msg_type_number_t task_info_count; task_info_count = TASK_INFO_MAX; kr = task_info(mach_task_self(), TASK_BASIC_INFO, (task_info_t)tinfo, &;task_info_count);?if (kr != KERN_SUCCESS) {?return?-1; }?task_basic_info_t basic_info;?thread_array_t thread_list;?mach_msg_type_number_t thread_count;?thread_info_data_t thinfo;?mach_msg_type_number_t thread_info_count;?thread_basic_info_t basic_info_th;?uint32_t stat_thread =?0;?// Mach threads basic_info = (task_basic_info_t)tinfo;?// get threads in the task kr = task_threads(mach_task_self(), &;thread_list, &;thread_count);?if (kr != KERN_SUCCESS) {?return?-1; }?if (thread_count >?0) stat_thread += thread_count;?long tot_sec =?0;?long tot_usec =?0;?float tot_cpu =?0;?int j;?for (j =?0; j < (int)thread_count; j++) { thread_info_count = THREAD_INFO_MAX; kr = thread_info(thread_list[j], THREAD_BASIC_INFO, (thread_info_t)thinfo, &;thread_info_count);?if (kr != KERN_SUCCESS) {?return?-1; } basic_info_th = (thread_basic_info_t)thinfo;?if (!(basic_info_th->flags &; TH_FLAGS_IDLE)) { tot_sec = tot_sec + basic_info_th->user_time.seconds + basic_info_th->system_time.seconds; tot_usec = tot_usec + basic_info_th->user_time.microseconds + basic_info_th->system_time.microseconds; tot_cpu = tot_cpu + basic_info_th->cpu_usage / (float)TH_USAGE_SCALE *?100.0; } }?// for each thread kr = vm_deallocate(mach_task_self(), (vm_offset_t)thread_list, thread_count *?sizeof(thread_t)); assert(kr == KERN_SUCCESS);?return tot_cpu;}?71、float數據取整四舍五入?CGFloat f =?4.65; NSLog(@"%d", (int)f); // 打印結果4 CGFloat f =?4.65; NSLog(@"%d", (int)round(f)); // 打印結果5?72、刪除UISearchBar系統默認邊框?// 方法一 searchBar.searchBarStyle =?UISearchBarStyleMinimal;?// 方法二 [searchBar setBackgroundImage:[[UIImage alloc]init]];?// 方法三 searchBar.barTintColor = [UIColor whiteColor];?73、為UICollectionViewCell設置圓角和陰影cell.contentView.layer.cornerRadius =?2.0f;cell.contentView.layer.borderWidth =?1.0f;cell.contentView.layer.borderColor = [UIColor clearColor].CGColor;cell.contentView.layer.masksToBounds = YES;cell.layer.shadowColor = [UIColor lightGrayColor].CGColor;cell.layer.shadowOffset = CGSizeMake(0,?2.0f);cell.layer.shadowRadius =?2.0f;cell.layer.shadowOpacity =?1.0f;cell.layer.masksToBounds = NO;cell.layer.shadowPath = [UIBezierPath?bezierPathWithRoundedRect:cell.bounds cornerRadius:cell.contentView.layer.cornerRadius].CGPath;?74、讓正在滑動的scrollView停止滾動(不是禁止,而是暫時停止滾動)?[scrollView setContentOffset:scrollView.contentOffset animated:NO];?75、使用xib設置UIView的邊框、圓角

圓角和邊框看下圖即可設置


xib設置圓角邊框.png

但是增加layer.borderColor的keyPath設置邊框顏色并不能起作用,后來查了資料,這里應該用layer.borderUIColor,但是這里設置的顏色不起作用,無論設置什么顏色顯示出來的都是黑色的。后來又去查了下,有種解決方案是給CALayer添加一個分類,提供一個?- (void)setBorderUIColor:(UIColor *)color;方法就可以解決了,實現如下:

?
xib設置邊框顏色.png?#import?"CALayer+BorderColor.h"@implementation?CALayer (BorderColor)- (void)setBorderUIColor:(UIColor *)color{self.borderColor = color.CGColor;}?76、根據經緯度獲取城市等信息?// 創建經緯度?CLLocation *location = [[CLLocation alloc] initWithLatitude:latitude longitude:longitude];?//創建一個譯碼器?CLGeocoder *cLGeocoder = [[CLGeocoder alloc] init]; [cLGeocoder reverseGeocodeLocation:userLocation completionHandler:^(NSArray *placemarks,?NSError *error) {?CLPlacemark *place = [placemarks objectAtIndex:0];?// 位置名NSLog(@"name,%@",place.name);?// 街道NSLog(@"thoroughfare,%@",place.thoroughfare);?// 子街道NSLog(@"subThoroughfare,%@",place.subThoroughfare);?// 市NSLog(@"locality,%@",place.locality);?// 區NSLog(@"subLocality,%@",place.subLocality);?// 國家NSLog(@"country,%@",place.country); } }];/* CLPlacemark中屬性含義name 地名thoroughfare 街道subThoroughfare 街道相關信息,例如門牌等locality 城市subLocality 城市相關信息,例如標志性建筑administrativeArea 直轄市subAdministrativeArea 其他行政區域信息(自治區等)postalCode 郵編ISOcountryCode 國家編碼country 國家inlandWater 水源,湖泊ocean 海洋areasOfInterest 關聯的或利益相關的地標*/?77、如何防止添加多個NSNotification觀察者??// 解決方案就是添加觀察者之前先移除下這個觀察者[[NSNotificationCenter defaultCenter]?removeObserver:observer?name:name?object:object];?[[NSNotificationCenter defaultCenter]?addObserver:observer?selector:selector?name:name?object:object];?78、將一個xib添加到另外一個xib上?// 假設你的自定義view名字為CustomView,你需要在CustomView.m中重寫 `- (instancetype)initWithCoder:(NSCoder *)aDecoder` 方法,代碼如下:- (instancetype)initWithCoder:(NSCoder *)aDecoder {?if ((self = [super initWithCoder:aDecoder])) { [self addSubview:[[[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:self options:nil] objectAtIndex:0]]; }return?self;}
將一個xib添加到另外一個xib上.png?79、處理字符串,使其首字母大寫?NSString *str =?@"abcdefghijklmn"; NSString *resultStr;?if (str &;&;?str.length >?0) { resultStr = [str?stringByReplacingCharactersInRange:NSMakeRange(0,1) withString:[[str?substringToIndex:1] capitalizedString]]; } NSLog(@"%@", resultStr);?80、判斷一個UIAlertView/UIAlertController是否顯示?// UIAlertView自帶屬性if (alert.visible){?NSLog(@"顯示了");}?else {?NSLog(@"未顯示");}// UIAlertController沒有visible屬性,需要自己判斷,添加一個全局變量 BOOL visibleUIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Title" message:@"message" preferredStyle:UIAlertControllerStyleAlert];?UIAlertAction *alertAction = [UIAlertAction actionWithTitle:@"ActionTitle" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {?self.visible =?NO; }];?UIAlertAction *calcelAction = [UIAlertAction actionWithTitle:@"calcelTitle" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {self.visible =?NO; }]; [alertController addAction:alertAction]; [alertController addAction:calcelAction]; [self presentViewController:alertController animated:YES completion:^{?self.visible =?YES; }];?81、獲取字符串中的數字?- (NSString *)getNumberFromStr:(NSString *)str{?NSCharacterSet *nonDigitCharacterSet = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];?return [[str componentsSeparatedByCharactersInSet:nonDigitCharacterSet] componentsJoinedByString:@""];}?NSLog(@"%@", [self getNumberFromStr:@"a0b0c1d2e3f4fda8fa8fad9fsad23"]);?// 0012348892382、為UIView的某個方向添加邊框?// 添加UIView分類// UIView+WZB.h#import <UIKit/UIKit.h>/** 邊框方向 - WZBBorderDirectionTop: 頂部 - WZBBorderDirectionLeft: 左邊 - WZBBorderDirectionBottom: 底部 - WZBBorderDirectionRight: 右邊 */typedef NS_ENUM(NSInteger, WZBBorderDirectionType) { WZBBorderDirectionTop =?0, WZBBorderDirectionLeft, WZBBorderDirectionBottom, WZBBorderDirectionRight};@interface UIView (WZB)/** 為UIView的某個方向添加邊框 @param direction 邊框方向 @param color 邊框顏色 @param width 邊框寬度 */- (void)wzb_addBorder:(WZBBorderDirectionType)direction?color:(UIColor *)color?width:(CGFloat)width;@end// UIView+WZB.m#import?"UIView+WZB.h"@implementation UIView (WZB)- (void)wzb_addBorder:(WZBBorderDirectionType)direction?color:(UIColor *)color?width:(CGFloat)width{ CALayer *border = [CALayer layer]; border.backgroundColor =?color.CGColor;?switch (direction) {?case WZBBorderDirectionTop: { border.frame = CGRectMake(0.0f,?0.0f, self.bounds.size.width,?width); }?break;case WZBBorderDirectionLeft: { border.frame = CGRectMake(0.0f,?0.0f,?width, self.bounds.size.height); }?break;?case WZBBorderDirectionBottom: { border.frame = CGRectMake(0.0f, self.bounds.size.height -?width, self.bounds.size.width,?width); }?break;?case WZBBorderDirectionRight: { border.frame = CGRectMake(self.bounds.size.width -?width,?0,?width, self.bounds.size.height); }?break;?default:?break; } [self.layer addSublayer:border];}?83、通過屬性設置UISwitch、UIProgressView等控件的寬高?mySwitch.transform = CGAffineTransformMakeScale(5.0f, 5.0f);progressView.transform = CGAffineTransformMakeScale(5.0f, 5.0f);84、自動搜索功能,用戶連續輸入的時候不搜索,用戶停止輸入的時候自動搜索(我這里設置的是0.5s,可根據需求更改)?// 輸入框文字改變的時候調用-(void)searchBar:(UISearchBar *)searchBar?textDidChange:(NSString *)searchText{?// 先取消調用搜索方法 [NSObject?cancelPreviousPerformRequestsWithTarget:self?selector:@selector(searchNewResult)?object:nil];?// 0.5秒后調用搜索方法 [self?performSelector:@selector(searchNewResult)?withObject:nil?afterDelay:0.5];}85、修改UISearchBar的占位文字顏色?// 方法一(推薦使用)?UITextField *searchField = [searchBar valueForKey:@"_searchField"]; [searchField setValue:[UIColor blueColor] forKeyPath:@"_placeholderLabel.textColor"];?// 方法二(已過期) [[UILabel appearanceWhenContainedIn:[UISearchBar?class],?nil] setTextColor:[UIColor redColor]];?// 方法三(已過期)?NSDictionary *placeholderAttributes = @{NSForegroundColorAttributeName : [UIColor redColor],?NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue" size:15],};?NSAttributedString *attributedPlaceholder = [[NSAttributedString alloc] initWithString:searchBar.placeholder attributes:placeholderAttributes]; [[UITextField appearanceWhenContainedIn:[UISearchBar?class],?nil] setAttributedPlaceholder:attributedPlaceholder];?86、某個界面多個事件同時響應引起的問題(比如,兩個button同時按push到新界面,兩個都會響應,可能導致push重疊)?// UIView有個屬性叫做exclusiveTouch,設置為YES后,其響應事件會和其他view互斥(有其他view事件響應的時候點擊它不起作用)view.exclusiveTouch =?YES;// 一個一個設置太麻煩了,可以全局設置[[UIView appearance] setExclusiveTouch:YES];// 或者只設置button[[UIButton appearance] setExclusiveTouch:YES];?87、修改tabBar的frame?// 子類化UITabBarViewController,我這里以修改tabBar高度為例,重寫viewWillLayoutSubviews方法#import?"WZBTabBarViewController.h"@interface?WZBTabBarViewController ()@end@implementation?WZBTabBarViewController- (void)viewWillLayoutSubviews {?CGRect tabFrame =?self.tabBar.frame; tabFrame.size.height =?100; tabFrame.origin.y =?self.view.frame.size.height -?100;?self.tabBar.frame = tabFrame;}@end?88、修改鍵盤背景顏色?// 設置某個鍵盤顏色 textField.keyboardAppearance =?UIKeyboardAppearanceAlert;// 設置工程中所有鍵盤顏色[[UITextField appearance] setKeyboardAppearance:UIKeyboardAppearanceAlert];?89、修改image顏色?UIImage *image = [UIImage imageNamed:@"test"]; imageView.image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];?CGRect rect =?CGRectMake(0,?0, image.size.width, image.size.height);UIGraphicsBeginImageContext(rect.size);?CGContextRef context =?UIGraphicsGetCurrentContext();?CGContextClipToMask(context, rect, image.CGImage);?CGContextSetFillColorWithColor(context, [[UIColor redColor]?CGColor]);?CGContextFillRect(context, rect);?UIImage *img =?UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();?UIImage *flippedImage = [UIImage imageWithCGImage:img.CGImage scale:1.0 orientation:?UIImageOrientationDownMirrored]; imageView.image = flippedImage;?90、動畫執行removeFromSuperview?[UIView animateWithDuration:0.2 animations:^{ view.alpha = 0.0f; } completion:^(BOOL finished){ [view removeFromSuperview]; }];?91、啟動頁顯示延時?- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{// 延時10s sleep(10);?return?YES;}?92、設置UIButton高亮時的背景顏色?// 方法一、子類化UIButton,重寫setHighlighted:方法,代碼如下#import?"WZBButton.h"@implementation?WZBButton- (void)setHighlighted:(BOOL)highlighted { [super setHighlighted:highlighted];?UIColor *normalColor = [UIColor greenColor];?UIColor *highlightedColor = [UIColor redColor];self.backgroundColor = highlighted ? highlightedColor : normalColor;}// 方法二、利用setBackgroundImage:forState:方法[button setBackgroundImage:[self imageWithColor:[UIColor blueColor]] forState:UIControlStateHighlighted];- (UIImage *)imageWithColor:(UIColor *)color {?CGRect rect =?CGRectMake(0.0f,?0.0f,?1.0f,?1.0f);?UIGraphicsBeginImageContext(rect.size);CGContextRef context =?UIGraphicsGetCurrentContext();CGContextSetFillColorWithColor(context, [color?CGColor]);CGContextFillRect(context, rect);?UIImage *image =?UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();?return image;}?93、關于圖片拉伸

推薦看這個博客,講的很詳細http://blog.csdn.net/q199109106q/article/details/8615661

94、利用runtime獲取一個類所有屬性?- (NSArray *)allPropertyNames:(Class)aClass{ unsigned count; objc_property_t *properties = class_copyPropertyList(aClass,?&;count); NSMutableArray *rv = [NSMutableArray array]; unsigned i; for (i = 0; i < count; i++) { objc_property_t property = properties[i]; NSString *name = [NSString stringWithUTF8String:property_getName(property)]; [rv addObject:name]; } free(properties); return rv;}?95、設置textView的某段文字變成其他顏色?- (void)setupTextView:(UITextView *)textView?text:(NSString *)text?color:(UIColor *)color { NSMutableAttributedString *string = [[NSMutableAttributedString alloc]initWithString:textView.text]; [string addAttribute:NSForegroundColorAttributeName value:color range:[textView.text rangeOfString:text]]; [textView setAttributedText:string];}?96、讓push跳轉動畫像modal跳轉動畫那樣效果(從下往上推上來)?- (void)push{TestViewController *vc = [[TestViewController alloc] init]; vc.view.backgroundColor = [UIColor redColor]; CATransition* transition = [CATransition animation]; transition.duration =?0.4f; transition.type = kCATransitionMoveIn; transition.subtype = kCATransitionFromTop; [self.navigationController.view.layer?addAnimation:transition forKey:kCATransition]; [self.navigationController pushViewController:vc animated:NO];}- (void)pop{CATransition* transition = [CATransition animation]; transition.duration =?0.4f; transition.type = kCATransitionReveal; transition.subtype = kCATransitionFromBottom; [self.navigationController.view.layer?addAnimation:transition forKey:kCATransition]; [self.navigationController popViewControllerAnimated:NO];}?97、上傳圖片太大,壓縮圖片?-(UIImage *)resizeImage:(UIImage *)image{?float actualHeight =?image.size.height;?float actualWidth =?image.size.width;?float maxHeight =?300.0;?float maxWidth =?400.0;?float imgRatio = actualWidth/actualHeight;?float maxRatio = maxWidth/maxHeight;?float compressionQuality =?0.5;//50 percent compression?if (actualHeight > maxHeight || actualWidth > maxWidth) {if(imgRatio < maxRatio) {?//adjust width according to maxHeight imgRatio = maxHeight / actualHeight; actualWidth = imgRatio * actualWidth; actualHeight = maxHeight; }?else?if(imgRatio > maxRatio) {?//adjust height according to maxWidth imgRatio = maxWidth / actualWidth; actualHeight = imgRatio * actualHeight; actualWidth = maxWidth; }?else { actualHeight = maxHeight; actualWidth = maxWidth; } } CGRect?rect = CGRectMake(0.0,?0.0, actualWidth, actualHeight); UIGraphicsBeginImageContext(rect.size); [image drawInRect:rect]; UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); NSData *imageData = UIImageJPEGRepresentation(img, compressionQuality); UIGraphicsEndImageContext();?return [UIImage imageWithData:imageData];}轉載自 -?http://www.jianshu.com/u/6d5126f52682?以上是iOS 開發經驗 - 轉載的內容,更多?轉載?經驗?開發?iOS?的內容,請您使用搜索功能獲取相關信息。

總結

以上是生活随笔為你收集整理的iOS 开发经验 - 转载的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

中文字幕无码免费久久9一区9 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 狠狠色丁香久久婷婷综合五月 | 日韩无码专区 | 欧美老熟妇乱xxxxx | 亚洲欧洲日本综合aⅴ在线 | 亚洲中文字幕va福利 | 中文字幕无线码 | 性欧美疯狂xxxxbbbb | 丰满护士巨好爽好大乳 | 大色综合色综合网站 | 两性色午夜免费视频 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 色偷偷人人澡人人爽人人模 | 国产日产欧产精品精品app | 亚洲国产综合无码一区 | 中文字幕 人妻熟女 | 亚洲乱码中文字幕在线 | 欧美精品一区二区精品久久 | 永久黄网站色视频免费直播 | 亚洲国产精品无码一区二区三区 | 国产人妻久久精品二区三区老狼 | 蜜臀aⅴ国产精品久久久国产老师 | 欧美亚洲日韩国产人成在线播放 | 两性色午夜免费视频 | 99久久亚洲精品无码毛片 | 亚洲 a v无 码免 费 成 人 a v | 香港三级日本三级妇三级 | 国产激情综合五月久久 | 亚洲男女内射在线播放 | 亚洲成a人片在线观看无码 | 在线播放亚洲第一字幕 | 水蜜桃av无码 | 亚洲精品一区国产 | 国产欧美精品一区二区三区 | 国产精品鲁鲁鲁 | 日本高清一区免费中文视频 | 激情国产av做激情国产爱 | 亚洲最大成人网站 | 久久国产精品_国产精品 | 成人片黄网站色大片免费观看 | 奇米影视888欧美在线观看 | 国产另类ts人妖一区二区 | 伊人久久大香线焦av综合影院 | 自拍偷自拍亚洲精品10p | 欧美 日韩 人妻 高清 中文 | 丰满诱人的人妻3 | 国产尤物精品视频 | 99精品久久毛片a片 | 久久综合网欧美色妞网 | 精品国产一区二区三区四区在线看 | 国产精品久久久午夜夜伦鲁鲁 | 国产成人综合色在线观看网站 | 国产高清av在线播放 | 日本丰满熟妇videos | 国产婷婷色一区二区三区在线 | 亚洲色偷偷偷综合网 | 西西人体www44rt大胆高清 | 综合网日日天干夜夜久久 | 亚洲国产成人a精品不卡在线 | 东京热无码av男人的天堂 | 又粗又大又硬毛片免费看 | 欧美 丝袜 自拍 制服 另类 | 国产精品a成v人在线播放 | 亚洲色大成网站www | 欧美 亚洲 国产 另类 | 国产精品无码一区二区三区不卡 | 中文字幕无线码 | 又紧又大又爽精品一区二区 | 波多野结衣一区二区三区av免费 | 欧美成人免费全部网站 | 国产精品亚洲一区二区三区喷水 | 国产精品无套呻吟在线 | 中文字幕无线码免费人妻 | 初尝人妻少妇中文字幕 | 无码人妻出轨黑人中文字幕 | 九一九色国产 | 国产精品久久久av久久久 | 欧美熟妇另类久久久久久不卡 | 秋霞特色aa大片 | 波多野结衣aⅴ在线 | 国产无遮挡又黄又爽又色 | 啦啦啦www在线观看免费视频 | 久久人人爽人人人人片 | 国产精品99久久精品爆乳 | 丰腴饱满的极品熟妇 | 国产凸凹视频一区二区 | 小鲜肉自慰网站xnxx | 国产精品怡红院永久免费 | 少妇一晚三次一区二区三区 | 久久久久久a亚洲欧洲av冫 | 欧美 丝袜 自拍 制服 另类 | 成熟女人特级毛片www免费 | 日本爽爽爽爽爽爽在线观看免 | 精品夜夜澡人妻无码av蜜桃 | 国产高清av在线播放 | 无码毛片视频一区二区本码 | 成 人 免费观看网站 | 日韩精品乱码av一区二区 | 1000部啪啪未满十八勿入下载 | 偷窥日本少妇撒尿chinese | 日韩精品无码一本二本三本色 | 激情五月综合色婷婷一区二区 | 日本成熟视频免费视频 | 亚洲精品无码国产 | 亚洲乱码日产精品bd | 大乳丰满人妻中文字幕日本 | 一二三四在线观看免费视频 | 国产激情艳情在线看视频 | 久久精品国产一区二区三区肥胖 | 亚洲欧美精品伊人久久 | www一区二区www免费 | 小泽玛莉亚一区二区视频在线 | 国产精品永久免费视频 | 中文精品无码中文字幕无码专区 | 国内精品人妻无码久久久影院 | 亚洲精品鲁一鲁一区二区三区 | 久久精品国产大片免费观看 | 亲嘴扒胸摸屁股激烈网站 | 久久久久亚洲精品男人的天堂 | 麻豆国产人妻欲求不满 | 永久免费观看美女裸体的网站 | 丰满人妻一区二区三区免费视频 | 久久无码中文字幕免费影院蜜桃 | 久久久久se色偷偷亚洲精品av | 久久精品人人做人人综合试看 | 日本丰满护士爆乳xxxx | 国产精品美女久久久久av爽李琼 | 国内少妇偷人精品视频 | 成人一在线视频日韩国产 | 精品一区二区三区波多野结衣 | 麻豆国产人妻欲求不满谁演的 | 亚洲精品综合五月久久小说 | 黑人粗大猛烈进出高潮视频 | 人人妻人人澡人人爽人人精品浪潮 | 国产亚洲tv在线观看 | 日本乱偷人妻中文字幕 | 人人爽人人澡人人高潮 | 日本大香伊一区二区三区 | 国产精品人妻一区二区三区四 | 中文字幕人成乱码熟女app | 又色又爽又黄的美女裸体网站 | 亚洲性无码av中文字幕 | 人人妻人人藻人人爽欧美一区 | 98国产精品综合一区二区三区 | 欧美性黑人极品hd | 人妻熟女一区 | 日日碰狠狠躁久久躁蜜桃 | 色老头在线一区二区三区 | 人妻少妇精品无码专区动漫 | 日日橹狠狠爱欧美视频 | 日本精品人妻无码77777 天堂一区人妻无码 | 夜夜高潮次次欢爽av女 | 日韩人妻少妇一区二区三区 | 中文字幕无码av波多野吉衣 | 樱花草在线播放免费中文 | 亚洲熟妇色xxxxx欧美老妇 | 精品国偷自产在线 | 国产精品国产三级国产专播 | 色综合视频一区二区三区 | 国产成人综合色在线观看网站 | 一个人免费观看的www视频 | 精品熟女少妇av免费观看 | 中文字幕 人妻熟女 | 人妻天天爽夜夜爽一区二区 | 亚洲精品国偷拍自产在线麻豆 | 久久国产精品偷任你爽任你 | 人人妻人人澡人人爽人人精品浪潮 | 日本熟妇大屁股人妻 | 两性色午夜视频免费播放 | 国产精品亚洲一区二区三区喷水 | 日韩人妻无码中文字幕视频 | 国产熟妇另类久久久久 | 玩弄中年熟妇正在播放 | 曰韩少妇内射免费播放 | 中文字幕av无码一区二区三区电影 | 国产精品久久久av久久久 | 国产一区二区不卡老阿姨 | 久久综合久久自在自线精品自 | 精品厕所偷拍各类美女tp嘘嘘 | 九九久久精品国产免费看小说 | 亚洲精品国产精品乱码视色 | 色窝窝无码一区二区三区色欲 | 午夜理论片yy44880影院 | 鲁鲁鲁爽爽爽在线视频观看 | 日本精品高清一区二区 | 一本久久a久久精品vr综合 | 亚洲成av人影院在线观看 | 亚洲熟熟妇xxxx | 久久久久成人片免费观看蜜芽 | 无遮无挡爽爽免费视频 | 久久午夜夜伦鲁鲁片无码免费 | 久久久久国色av免费观看性色 | 丰满肥臀大屁股熟妇激情视频 | 啦啦啦www在线观看免费视频 | 青草视频在线播放 | 国产精品人人爽人人做我的可爱 | 性欧美牲交在线视频 | 乱中年女人伦av三区 | 天天躁夜夜躁狠狠是什么心态 | 亚洲va欧美va天堂v国产综合 | 国产精品igao视频网 | 国产精品久久久久久亚洲毛片 | 国产av无码专区亚洲a∨毛片 | 中文精品无码中文字幕无码专区 | 亚洲欧美国产精品久久 | 国产精品无码一区二区三区不卡 | 色欲久久久天天天综合网精品 | 一本久道高清无码视频 | 久9re热视频这里只有精品 | 国产97色在线 | 免 | 欧美人与禽猛交狂配 | 亚洲 高清 成人 动漫 | 99精品国产综合久久久久五月天 | 精品无人国产偷自产在线 | 欧美xxxxx精品 | 国产精品对白交换视频 | 日韩精品无码一本二本三本色 | 沈阳熟女露脸对白视频 | 中文字幕av伊人av无码av | 欧美日韩色另类综合 | 67194成是人免费无码 | 欧洲精品码一区二区三区免费看 | 亚洲精品久久久久中文第一幕 | 伊在人天堂亚洲香蕉精品区 | 2020久久香蕉国产线看观看 | 日韩亚洲欧美精品综合 | 午夜无码区在线观看 | 亚洲男人av天堂午夜在 | 露脸叫床粗话东北少妇 | 98国产精品综合一区二区三区 | 国产午夜无码视频在线观看 | 日韩av无码一区二区三区不卡 | 亚洲小说春色综合另类 | 久久久久国色av免费观看性色 | 国产午夜无码精品免费看 | 久久97精品久久久久久久不卡 | 亚洲日本va中文字幕 | 久久人人爽人人爽人人片av高清 | 国产内射爽爽大片视频社区在线 | 亚洲精品成a人在线观看 | 波多野结衣av一区二区全免费观看 | 无码午夜成人1000部免费视频 | 影音先锋中文字幕无码 | 亚洲天堂2017无码 | 国产成人精品一区二区在线小狼 | 熟女少妇在线视频播放 | 国产99久久精品一区二区 | 特黄特色大片免费播放器图片 | 亚洲国产高清在线观看视频 | 丰满岳乱妇在线观看中字无码 | 久热国产vs视频在线观看 | 午夜福利电影 | 中文字幕无码av波多野吉衣 | 荫蒂被男人添的好舒服爽免费视频 | 波多野结衣高清一区二区三区 | 欧美35页视频在线观看 | 国产乡下妇女做爰 | 日本精品少妇一区二区三区 | 免费网站看v片在线18禁无码 | 亚洲成av人片天堂网无码】 | 国产精品久免费的黄网站 | 伦伦影院午夜理论片 | 国产成人精品久久亚洲高清不卡 | 丝袜 中出 制服 人妻 美腿 | 亚洲国产一区二区三区在线观看 | 日本大乳高潮视频在线观看 | 无码人妻av免费一区二区三区 | 国产人妻人伦精品1国产丝袜 | 国产av无码专区亚洲awww | 国产69精品久久久久app下载 | 亚洲精品久久久久avwww潮水 | 欧美变态另类xxxx | 女人被爽到呻吟gif动态图视看 | 亚洲码国产精品高潮在线 | 无码乱肉视频免费大全合集 | 最新国产麻豆aⅴ精品无码 | 亚洲精品久久久久久一区二区 | 亚洲春色在线视频 | 亚洲爆乳大丰满无码专区 | 亚洲成a人片在线观看日本 | 夜夜躁日日躁狠狠久久av | 无码人中文字幕 | 国产人成高清在线视频99最全资源 | 精品成在人线av无码免费看 | 偷窥村妇洗澡毛毛多 | 亚洲精品欧美二区三区中文字幕 | 福利一区二区三区视频在线观看 | 99视频精品全部免费免费观看 | 熟妇人妻无码xxx视频 | 欧美性生交xxxxx久久久 | 久久精品中文字幕大胸 | 性欧美videos高清精品 | 奇米影视7777久久精品人人爽 | 亚洲色大成网站www国产 | 日本高清一区免费中文视频 | 好爽又高潮了毛片免费下载 | 天堂а√在线地址中文在线 | 日本饥渴人妻欲求不满 | 色一情一乱一伦一视频免费看 | 国产成人一区二区三区在线观看 | 日本精品人妻无码免费大全 | 成人欧美一区二区三区黑人免费 | 日本熟妇人妻xxxxx人hd | 欧美日本日韩 | 日本一区二区更新不卡 | 亚洲小说春色综合另类 | 天天做天天爱天天爽综合网 | 少妇无码av无码专区在线观看 | 妺妺窝人体色www在线小说 | 激情爆乳一区二区三区 | 日日鲁鲁鲁夜夜爽爽狠狠 | 国产成人综合在线女婷五月99播放 | 免费男性肉肉影院 | 99久久精品午夜一区二区 | 又大又紧又粉嫩18p少妇 | 亚洲毛片av日韩av无码 | 久久人妻内射无码一区三区 | 国产97人人超碰caoprom | 久久综合给合久久狠狠狠97色 | 国产精品久久久久久久影院 | 国产高清av在线播放 | 国产成人精品三级麻豆 | 国产区女主播在线观看 | 荫蒂被男人添的好舒服爽免费视频 | 亚洲国产综合无码一区 | 国产精品无套呻吟在线 | 日本大乳高潮视频在线观看 | 国产精品第一区揄拍无码 | 中文字幕 亚洲精品 第1页 | 国产真人无遮挡作爱免费视频 | 日本丰满熟妇videos | 亚洲日韩中文字幕在线播放 | 久久精品国产99久久6动漫 | yw尤物av无码国产在线观看 | 色妞www精品免费视频 | 一二三四社区在线中文视频 | 少妇性l交大片欧洲热妇乱xxx | 国产内射爽爽大片视频社区在线 | 中文字幕人妻无码一夲道 | 久久国内精品自在自线 | 国内老熟妇对白xxxxhd | 精品久久久无码中文字幕 | 亚洲精品一区二区三区在线观看 | 1000部啪啪未满十八勿入下载 | 亚洲精品综合一区二区三区在线 | 久久99精品国产麻豆 | 人妻少妇精品无码专区动漫 | 福利一区二区三区视频在线观看 | 国产精品人人爽人人做我的可爱 | 国产精品亚洲а∨无码播放麻豆 | 国产乱人伦偷精品视频 | 国产97色在线 | 免 | 捆绑白丝粉色jk震动捧喷白浆 | 亚洲男女内射在线播放 | 国产亚洲欧美在线专区 | 久久久国产精品无码免费专区 | 国产国语老龄妇女a片 | 色欲综合久久中文字幕网 | 熟女少妇人妻中文字幕 | 成人精品视频一区二区三区尤物 | 精品人人妻人人澡人人爽人人 | 老熟妇仑乱视频一区二区 | 午夜丰满少妇性开放视频 | 黑人巨大精品欧美黑寡妇 | 在线 国产 欧美 亚洲 天堂 | 亚洲中文字幕无码中字 | 国产在线一区二区三区四区五区 | 波多野结衣乳巨码无在线观看 | 亚洲国产精品久久久久久 | 成人无码精品一区二区三区 | 2020最新国产自产精品 | 日韩精品乱码av一区二区 | 性生交大片免费看女人按摩摩 | 国产成人精品无码播放 | 亚洲人成网站在线播放942 | 亚洲狠狠色丁香婷婷综合 | 精品亚洲成av人在线观看 | 日韩精品一区二区av在线 | 欧美国产日产一区二区 | 精品无码一区二区三区的天堂 | 精品欧洲av无码一区二区三区 | 日韩亚洲欧美精品综合 | 综合人妻久久一区二区精品 | 久久99国产综合精品 | 奇米影视888欧美在线观看 | 国内精品久久久久久中文字幕 | 国产成人亚洲综合无码 | 精品aⅴ一区二区三区 | 性做久久久久久久久 | 欧美人与禽猛交狂配 | 亚洲码国产精品高潮在线 | 无码国产乱人伦偷精品视频 | 国产精品久久久久影院嫩草 | 色综合久久网 | 在线观看免费人成视频 | 又黄又爽又色的视频 | 国产成人精品一区二区在线小狼 | 精品欧美一区二区三区久久久 | 亚洲中文字幕va福利 | 7777奇米四色成人眼影 | 亚洲色大成网站www国产 | 在线观看国产午夜福利片 | 国产人妻精品一区二区三区 | 日韩精品乱码av一区二区 | 成人片黄网站色大片免费观看 | 老太婆性杂交欧美肥老太 | 天堂无码人妻精品一区二区三区 | 精品厕所偷拍各类美女tp嘘嘘 | 久久aⅴ免费观看 | 在线精品亚洲一区二区 | 亚洲va欧美va天堂v国产综合 | 精品欧洲av无码一区二区三区 | 日韩欧美群交p片內射中文 | 特级做a爰片毛片免费69 | 永久黄网站色视频免费直播 | 日本高清一区免费中文视频 | 欧洲欧美人成视频在线 | 久久精品人人做人人综合 | 一本久久a久久精品vr综合 | 久久99精品国产麻豆 | 人人妻在人人 | 国产在线aaa片一区二区99 | 影音先锋中文字幕无码 | 欧美自拍另类欧美综合图片区 | а√天堂www在线天堂小说 | 国产成人精品三级麻豆 | а√天堂www在线天堂小说 | 人人妻人人澡人人爽人人精品浪潮 | 欧美一区二区三区 | 最近免费中文字幕中文高清百度 | 日本爽爽爽爽爽爽在线观看免 | 高中生自慰www网站 | 成人aaa片一区国产精品 | 中文字幕日韩精品一区二区三区 | 久久99精品国产麻豆 | 天堂一区人妻无码 | 久久99热只有频精品8 | 久久久久99精品国产片 | 人妻少妇精品久久 | 欧美变态另类xxxx | 国产农村妇女高潮大叫 | 亚洲aⅴ无码成人网站国产app | 国产香蕉尹人综合在线观看 | 在线 国产 欧美 亚洲 天堂 | 帮老师解开蕾丝奶罩吸乳网站 | 亚洲无人区午夜福利码高清完整版 | 亚洲人成影院在线无码按摩店 | 国产亚洲tv在线观看 | 亚洲中文字幕无码中字 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 国产色精品久久人妻 | 丰满人妻一区二区三区免费视频 | 国产区女主播在线观看 | 日本护士毛茸茸高潮 | 亚洲国产欧美国产综合一区 | 亚洲一区二区三区国产精华液 | 精品国产一区二区三区四区 | 奇米影视7777久久精品人人爽 | 国产精品久久久午夜夜伦鲁鲁 | 国产人妻久久精品二区三区老狼 | 久久人人爽人人人人片 | 荫蒂被男人添的好舒服爽免费视频 | 欧美国产日产一区二区 | 在教室伦流澡到高潮hnp视频 | 麻豆国产人妻欲求不满谁演的 | 国产亚洲人成在线播放 | 精品国产av色一区二区深夜久久 | 久久久精品国产sm最大网站 | 欧美一区二区三区视频在线观看 | 六十路熟妇乱子伦 | 乱人伦中文视频在线观看 | a片免费视频在线观看 | 精品国产精品久久一区免费式 | 亚洲精品久久久久avwww潮水 | 色综合久久久久综合一本到桃花网 | 国产成人综合色在线观看网站 | 免费无码午夜福利片69 | 香港三级日本三级妇三级 | 无码帝国www无码专区色综合 | 呦交小u女精品视频 | 在线看片无码永久免费视频 | 免费乱码人妻系列无码专区 | 久久亚洲日韩精品一区二区三区 | 成人无码视频在线观看网站 | 欧美丰满熟妇xxxx性ppx人交 | 牲交欧美兽交欧美 | 亚洲欧美精品伊人久久 | 4hu四虎永久在线观看 | 国产精品丝袜黑色高跟鞋 | 成人三级无码视频在线观看 | 欧美丰满老熟妇xxxxx性 | 国产精品多人p群无码 | 国产在线精品一区二区三区直播 | 日日摸天天摸爽爽狠狠97 | 欧美人与禽猛交狂配 | 国内丰满熟女出轨videos | 亚拍精品一区二区三区探花 | 中文字幕+乱码+中文字幕一区 | 天堂无码人妻精品一区二区三区 | 人妻体内射精一区二区三四 | 国产真实乱对白精彩久久 | 亚洲国产欧美国产综合一区 | 亚洲国产精品久久人人爱 | 亚洲最大成人网站 | 波多野结衣一区二区三区av免费 | 久久国产精品萌白酱免费 | 一本精品99久久精品77 | 黑人玩弄人妻中文在线 | аⅴ资源天堂资源库在线 | 99久久人妻精品免费一区 | 无码国内精品人妻少妇 | 亚洲一区二区三区播放 | 国产午夜精品一区二区三区嫩草 | 国产深夜福利视频在线 | 亚洲精品国产精品乱码视色 | 波多野结衣一区二区三区av免费 | aⅴ在线视频男人的天堂 | 妺妺窝人体色www婷婷 | 精品人妻中文字幕有码在线 | 亚洲国产精品毛片av不卡在线 | 久久久久久久人妻无码中文字幕爆 | 久久久精品456亚洲影院 | 1000部夫妻午夜免费 | 窝窝午夜理论片影院 | 国产农村乱对白刺激视频 | 曰韩无码二三区中文字幕 | 精品无码国产自产拍在线观看蜜 | 成人动漫在线观看 | 人妻中文无码久热丝袜 | 久久久久久九九精品久 | 久久精品人人做人人综合 | 水蜜桃色314在线观看 | 成人无码精品1区2区3区免费看 | 少妇被黑人到高潮喷出白浆 | 欧美乱妇无乱码大黄a片 | 日本护士毛茸茸高潮 | 任你躁在线精品免费 | 蜜臀av无码人妻精品 | 国产人成高清在线视频99最全资源 | 亚洲精品一区二区三区婷婷月 | 国产麻豆精品精东影业av网站 | 沈阳熟女露脸对白视频 | 欧洲熟妇色 欧美 | 欧美国产日韩久久mv | 国产又粗又硬又大爽黄老大爷视 | 国产免费无码一区二区视频 | 一本色道久久综合狠狠躁 | 欧美日韩久久久精品a片 | 成年美女黄网站色大免费视频 | 久久久亚洲欧洲日产国码αv | 性欧美牲交xxxxx视频 | 国内少妇偷人精品视频 | 日本精品人妻无码77777 天堂一区人妻无码 | 国产69精品久久久久app下载 | 久久国语露脸国产精品电影 | 中文无码伦av中文字幕 | 丰满人妻翻云覆雨呻吟视频 | 无码播放一区二区三区 | 欧洲精品码一区二区三区免费看 | 亚洲色偷偷偷综合网 | 午夜丰满少妇性开放视频 | 国产黄在线观看免费观看不卡 | 亚洲精品国产第一综合99久久 | 天天摸天天透天天添 | 亚洲成在人网站无码天堂 | 亚洲 欧美 激情 小说 另类 | 日韩欧美中文字幕在线三区 | 国产精品久久久 | 久久精品无码一区二区三区 | 亚洲男人av天堂午夜在 | 国内少妇偷人精品视频免费 | 18禁止看的免费污网站 | 18无码粉嫩小泬无套在线观看 | 亚洲精品成a人在线观看 | 成人片黄网站色大片免费观看 | 一本色道久久综合狠狠躁 | 亚洲大尺度无码无码专区 | 久久久久亚洲精品男人的天堂 | 图片区 小说区 区 亚洲五月 | 午夜时刻免费入口 | 国产网红无码精品视频 | 女高中生第一次破苞av | 欧洲vodafone精品性 | 好男人社区资源 | 98国产精品综合一区二区三区 | 久久久久se色偷偷亚洲精品av | 国产精品va在线观看无码 | 97se亚洲精品一区 | 又紧又大又爽精品一区二区 | 亚洲另类伦春色综合小说 | 亚洲国产精品久久久天堂 | 国产美女极度色诱视频www | 国产猛烈高潮尖叫视频免费 | 亚洲午夜无码久久 | 欧美一区二区三区 | 中文字幕乱码人妻无码久久 | 午夜福利电影 | 午夜精品久久久久久久 | 国产人妻精品一区二区三区不卡 | 东京热无码av男人的天堂 | 人妻夜夜爽天天爽三区 | 精品国产福利一区二区 | 76少妇精品导航 | 久久无码中文字幕免费影院蜜桃 | 久久久av男人的天堂 | 天天躁日日躁狠狠躁免费麻豆 | 秋霞特色aa大片 | 强奷人妻日本中文字幕 | √天堂中文官网8在线 | 久久国产精品二国产精品 | 欧美猛少妇色xxxxx | 青草视频在线播放 | 国产 浪潮av性色四虎 | 在线欧美精品一区二区三区 | 乱码午夜-极国产极内射 | 国产成人无码av在线影院 | 亚洲精品久久久久avwww潮水 | 国产人妻精品一区二区三区 | 国产午夜精品一区二区三区嫩草 | 3d动漫精品啪啪一区二区中 | 正在播放东北夫妻内射 | 亚洲成在人网站无码天堂 | 人妻中文无码久热丝袜 | 日韩成人一区二区三区在线观看 | 亚洲自偷自偷在线制服 | 女人色极品影院 | 九月婷婷人人澡人人添人人爽 | 免费国产黄网站在线观看 | 免费观看激色视频网站 | 无套内射视频囯产 | 中文字幕av日韩精品一区二区 | 久久 国产 尿 小便 嘘嘘 | 久久婷婷五月综合色国产香蕉 | 蜜桃av抽搐高潮一区二区 | 精品国产一区av天美传媒 | 国产激情无码一区二区app | 最新国产乱人伦偷精品免费网站 | 国精品人妻无码一区二区三区蜜柚 | 永久免费精品精品永久-夜色 | 国产在线精品一区二区三区直播 | 欧美日韩一区二区免费视频 | 丰满人妻被黑人猛烈进入 | 欧美性黑人极品hd | 国产真人无遮挡作爱免费视频 | 丰满少妇人妻久久久久久 | 亚洲人成网站在线播放942 | 老熟妇乱子伦牲交视频 | 99久久精品国产一区二区蜜芽 | 欧美日韩视频无码一区二区三 | 内射巨臀欧美在线视频 | 四虎国产精品一区二区 | 午夜精品一区二区三区在线观看 | 性生交大片免费看女人按摩摩 | 久久午夜无码鲁丝片 | 亚洲爆乳精品无码一区二区三区 | 国产又爽又猛又粗的视频a片 | 亚洲国产欧美日韩精品一区二区三区 | 午夜精品久久久内射近拍高清 | 夜夜躁日日躁狠狠久久av | 中文字幕av伊人av无码av | 久久久久久久人妻无码中文字幕爆 | 亚洲一区二区三区香蕉 | 最新版天堂资源中文官网 | 久久综合狠狠综合久久综合88 | 国产精品亚洲а∨无码播放麻豆 | 国产熟女一区二区三区四区五区 | 黑人巨大精品欧美黑寡妇 | 欧美黑人性暴力猛交喷水 | 成人性做爰aaa片免费看不忠 | 97精品国产97久久久久久免费 | 人人妻人人藻人人爽欧美一区 | 大肉大捧一进一出视频出来呀 | 国内精品九九久久久精品 | 亚洲成色在线综合网站 | 国产午夜无码视频在线观看 | 在线欧美精品一区二区三区 | 高潮喷水的毛片 | √天堂资源地址中文在线 | 久久熟妇人妻午夜寂寞影院 | 强奷人妻日本中文字幕 | 丝袜 中出 制服 人妻 美腿 | 麻豆国产人妻欲求不满谁演的 | 免费无码的av片在线观看 | 日韩人妻系列无码专区 | 久9re热视频这里只有精品 | 欧美国产亚洲日韩在线二区 | 国产午夜精品一区二区三区嫩草 | 亚洲熟悉妇女xxx妇女av | 日本一本二本三区免费 | 国产高清不卡无码视频 | 亚洲午夜福利在线观看 | 久久 国产 尿 小便 嘘嘘 | 国产sm调教视频在线观看 | 日韩少妇白浆无码系列 | 国产艳妇av在线观看果冻传媒 | 亚洲精品成a人在线观看 | 午夜理论片yy44880影院 | 久久伊人色av天堂九九小黄鸭 | 无套内谢的新婚少妇国语播放 | 国产人成高清在线视频99最全资源 | 亚洲成色在线综合网站 | www成人国产高清内射 | 色偷偷人人澡人人爽人人模 | 国产精品久久福利网站 | 久久无码专区国产精品s | 一区二区三区高清视频一 | 一本加勒比波多野结衣 | 色综合视频一区二区三区 | 国产激情无码一区二区app | 久久精品丝袜高跟鞋 | 成熟人妻av无码专区 | 人人澡人摸人人添 | 国产乱码精品一品二品 | 中文字幕无码热在线视频 | 亚洲成a人片在线观看无码 | 精品偷自拍另类在线观看 | 精品欧洲av无码一区二区三区 | 色婷婷欧美在线播放内射 | 久久精品人妻少妇一区二区三区 | 少妇人妻大乳在线视频 | 日韩av激情在线观看 | 国产真实乱对白精彩久久 | 成人试看120秒体验区 | 国内精品人妻无码久久久影院 | 无码午夜成人1000部免费视频 | 在线播放免费人成毛片乱码 | 99在线 | 亚洲 | 无码av免费一区二区三区试看 | 亚洲精品综合五月久久小说 | 国产午夜视频在线观看 | 国产av无码专区亚洲a∨毛片 | 久久99精品久久久久婷婷 | 中文字幕人成乱码熟女app | 丁香花在线影院观看在线播放 | 网友自拍区视频精品 | 亚洲精品成人福利网站 | 67194成是人免费无码 | 未满成年国产在线观看 | 最近免费中文字幕中文高清百度 | 国产一区二区三区日韩精品 | 国产成人精品三级麻豆 | 无码av最新清无码专区吞精 | 中文字幕无线码免费人妻 | 亚洲精品成人福利网站 | 性做久久久久久久久 | 国产亚洲欧美日韩亚洲中文色 | 少妇的肉体aa片免费 | 377p欧洲日本亚洲大胆 | 伊在人天堂亚洲香蕉精品区 | 日本高清一区免费中文视频 | 少妇性l交大片欧洲热妇乱xxx | 一本久久a久久精品亚洲 | 国产三级精品三级男人的天堂 | 精品久久久久香蕉网 | 97夜夜澡人人爽人人喊中国片 | 无码任你躁久久久久久久 | 亚洲 a v无 码免 费 成 人 a v | 久久99精品国产.久久久久 | 精品国产青草久久久久福利 | 国产黄在线观看免费观看不卡 | 精品亚洲成av人在线观看 | 中文久久乱码一区二区 | 欧美人与物videos另类 | 亚洲精品无码人妻无码 | 大肉大捧一进一出视频出来呀 | 18精品久久久无码午夜福利 | 国产精品永久免费视频 | 国产高清不卡无码视频 | 国产女主播喷水视频在线观看 | 国产午夜精品一区二区三区嫩草 | 熟妇女人妻丰满少妇中文字幕 | 日本高清一区免费中文视频 | 99国产欧美久久久精品 | 欧美一区二区三区视频在线观看 | 伦伦影院午夜理论片 | 亚洲国产精品一区二区美利坚 | 精品少妇爆乳无码av无码专区 | 亚洲a无码综合a国产av中文 | 亚洲精品久久久久久一区二区 | 欧美人与动性行为视频 | 国产成人精品优优av | 性生交片免费无码看人 | 亚洲国产精品无码久久久久高潮 | 色综合久久久无码网中文 | 成人毛片一区二区 | 高清不卡一区二区三区 | 性做久久久久久久久 | 国产成人综合色在线观看网站 | 亚洲精品综合一区二区三区在线 | 亚洲国产精品无码一区二区三区 | 男人扒开女人内裤强吻桶进去 | 亚洲综合伊人久久大杳蕉 | 国产人妻大战黑人第1集 | 国产绳艺sm调教室论坛 | 亚洲日韩一区二区三区 | 国产农村妇女高潮大叫 | 日日噜噜噜噜夜夜爽亚洲精品 | 日本一区二区三区免费播放 | 国产内射爽爽大片视频社区在线 | 狂野欧美性猛交免费视频 | 人妻尝试又大又粗久久 | 少妇被粗大的猛进出69影院 | 东京热一精品无码av | 亚洲天堂2017无码中文 | 人妻少妇被猛烈进入中文字幕 | 国产精品99爱免费视频 | 亚洲日本va午夜在线电影 | 又紧又大又爽精品一区二区 | 色婷婷久久一区二区三区麻豆 | 亚洲中文字幕成人无码 | 久久国语露脸国产精品电影 | 国产卡一卡二卡三 | 红桃av一区二区三区在线无码av | 久久午夜夜伦鲁鲁片无码免费 | 欧美精品国产综合久久 | 亚洲一区av无码专区在线观看 | 色婷婷综合激情综在线播放 | 久久人人爽人人人人片 | 国产成人综合美国十次 | 精品乱子伦一区二区三区 | 色五月五月丁香亚洲综合网 | 久久精品一区二区三区四区 | 熟妇女人妻丰满少妇中文字幕 | 国产精品无码一区二区三区不卡 | 一本色道久久综合亚洲精品不卡 | 国产熟妇高潮叫床视频播放 | 99久久人妻精品免费二区 | 88国产精品欧美一区二区三区 | 久久精品女人天堂av免费观看 | 荡女精品导航 | 午夜不卡av免费 一本久久a久久精品vr综合 | 亚洲中文字幕乱码av波多ji | 成人无码精品一区二区三区 | 国产精品沙发午睡系列 | 在线视频网站www色 | 色综合久久久久综合一本到桃花网 | 久久久中文久久久无码 | 久久国产精品精品国产色婷婷 | 一本大道伊人av久久综合 | 日韩视频 中文字幕 视频一区 | 亚洲欧洲日本无在线码 | 熟女少妇在线视频播放 | 成人无码视频免费播放 | 午夜不卡av免费 一本久久a久久精品vr综合 | 国产超碰人人爽人人做人人添 | 亚洲日本va午夜在线电影 | 国内少妇偷人精品视频免费 | 四虎国产精品免费久久 | 免费国产成人高清在线观看网站 | 少妇被粗大的猛进出69影院 | 一本久道久久综合婷婷五月 | 98国产精品综合一区二区三区 | 免费人成在线视频无码 | 色五月丁香五月综合五月 | 国产精品人人爽人人做我的可爱 | 久久99国产综合精品 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 小泽玛莉亚一区二区视频在线 | 夜精品a片一区二区三区无码白浆 | 国产两女互慰高潮视频在线观看 | 欧美日韩亚洲国产精品 | 久久99久久99精品中文字幕 | 激情内射日本一区二区三区 | 国产精品久久久久久无码 | 国产在线精品一区二区三区直播 | 一本色道婷婷久久欧美 | 久久精品国产精品国产精品污 | 无码福利日韩神码福利片 | 亚洲综合在线一区二区三区 | 久久久久免费精品国产 | 鲁一鲁av2019在线 | 国产亚洲人成在线播放 | 一本一道久久综合久久 | 女人和拘做爰正片视频 | 18无码粉嫩小泬无套在线观看 | 亚洲国产高清在线观看视频 | 国产 浪潮av性色四虎 | 欧美成人午夜精品久久久 | 伊人久久婷婷五月综合97色 | 老熟妇仑乱视频一区二区 | 久久国语露脸国产精品电影 | 成人无码精品1区2区3区免费看 | 无码人妻精品一区二区三区下载 | 人妻中文无码久热丝袜 | 亚洲中文字幕成人无码 | 亚洲爆乳精品无码一区二区三区 | 日日躁夜夜躁狠狠躁 | av人摸人人人澡人人超碰下载 | 乌克兰少妇性做爰 | 亚洲人成影院在线无码按摩店 | 免费国产成人高清在线观看网站 | 99久久精品无码一区二区毛片 | 国产激情无码一区二区app | 精品一区二区三区无码免费视频 | 国产性生大片免费观看性 | 双乳奶水饱满少妇呻吟 | 天干天干啦夜天干天2017 | 久久成人a毛片免费观看网站 | 中文亚洲成a人片在线观看 | 午夜福利一区二区三区在线观看 | 全球成人中文在线 | 永久黄网站色视频免费直播 | 俺去俺来也www色官网 | 国内精品久久久久久中文字幕 | 麻花豆传媒剧国产免费mv在线 | a在线亚洲男人的天堂 | 97se亚洲精品一区 | 内射爽无广熟女亚洲 | 日本在线高清不卡免费播放 | 国产麻豆精品一区二区三区v视界 | 亚洲人成网站色7799 | 精品熟女少妇av免费观看 | 亚洲欧美精品aaaaaa片 | 亚洲s色大片在线观看 | 少妇性俱乐部纵欲狂欢电影 | 国产精品理论片在线观看 | 成人免费无码大片a毛片 | 国产疯狂伦交大片 | 亚洲成色www久久网站 | 无码人妻出轨黑人中文字幕 | 欧美亚洲国产一区二区三区 | 国产成人精品久久亚洲高清不卡 | 扒开双腿疯狂进出爽爽爽视频 | 中文字幕精品av一区二区五区 | 激情综合激情五月俺也去 | 人人爽人人澡人人高潮 | 黄网在线观看免费网站 | 99久久精品日本一区二区免费 | 中文无码成人免费视频在线观看 | 午夜无码人妻av大片色欲 | 亚洲精品国产品国语在线观看 | 国产精品高潮呻吟av久久4虎 | 性啪啪chinese东北女人 | 亚洲人成影院在线观看 | 爆乳一区二区三区无码 | 网友自拍区视频精品 | 欧美真人作爱免费视频 | 欧美高清在线精品一区 | 日本一区二区更新不卡 | 欧美日韩综合一区二区三区 | 色婷婷综合中文久久一本 | 午夜熟女插插xx免费视频 | 无码精品人妻一区二区三区av | 日本www一道久久久免费榴莲 | 国产精品无码成人午夜电影 | 国产农村乱对白刺激视频 | 天干天干啦夜天干天2017 | 中文字幕人妻丝袜二区 | 鲁大师影院在线观看 | 人人爽人人爽人人片av亚洲 | 欧洲欧美人成视频在线 | 国产情侣作爱视频免费观看 | 粉嫩少妇内射浓精videos | 在线观看国产一区二区三区 | 亚洲啪av永久无码精品放毛片 | 欧美性生交xxxxx久久久 | 国产特级毛片aaaaaa高潮流水 | 欧美大屁股xxxxhd黑色 | 露脸叫床粗话东北少妇 | 人妻少妇精品视频专区 | a在线亚洲男人的天堂 | 久久午夜夜伦鲁鲁片无码免费 | 中文无码成人免费视频在线观看 | 亚洲一区二区三区国产精华液 | 亚洲 a v无 码免 费 成 人 a v | 女人被男人躁得好爽免费视频 | 久久精品一区二区三区四区 | 大肉大捧一进一出好爽视频 | 成人亚洲精品久久久久软件 | 亚洲国产精品一区二区美利坚 | 日日碰狠狠躁久久躁蜜桃 | 久久精品国产大片免费观看 | 免费中文字幕日韩欧美 | www国产精品内射老师 | 天天av天天av天天透 | 久久99精品久久久久婷婷 | 国语精品一区二区三区 | 久久久久se色偷偷亚洲精品av | 亚洲精品久久久久久久久久久 | 国产精品亚洲综合色区韩国 | 国产一精品一av一免费 | 精品偷拍一区二区三区在线看 | 免费播放一区二区三区 | 漂亮人妻洗澡被公强 日日躁 | 日本丰满熟妇videos | 亚洲欧洲日本综合aⅴ在线 | 欧美成人家庭影院 | 欧美亚洲日韩国产人成在线播放 | 中文字幕人妻无码一夲道 | 色噜噜亚洲男人的天堂 | 欧美人与物videos另类 | 日本丰满护士爆乳xxxx | 国产香蕉尹人综合在线观看 | 成人性做爰aaa片免费看 | 天海翼激烈高潮到腰振不止 | 亚洲午夜久久久影院 | 乱码午夜-极国产极内射 | 久久99热只有频精品8 | 2019午夜福利不卡片在线 | 欧美野外疯狂做受xxxx高潮 | 久久精品国产精品国产精品污 | 久久精品丝袜高跟鞋 | 国模大胆一区二区三区 | 精品国产一区二区三区av 性色 | 无码国产色欲xxxxx视频 | 久久人人爽人人爽人人片av高清 | 日韩人妻无码中文字幕视频 | 亚洲精品久久久久久一区二区 | 日日摸天天摸爽爽狠狠97 | 久久熟妇人妻午夜寂寞影院 | 成人无码影片精品久久久 | 波多野结衣乳巨码无在线观看 | 亚洲成a人片在线观看无码3d | 国产农村乱对白刺激视频 | 久久精品一区二区三区四区 | 国内精品久久毛片一区二区 | 西西人体www44rt大胆高清 | 成人免费无码大片a毛片 | 亚洲va欧美va天堂v国产综合 | 免费男性肉肉影院 | aⅴ亚洲 日韩 色 图网站 播放 | 九九久久精品国产免费看小说 | 国产成人无码av在线影院 | 欧美国产亚洲日韩在线二区 | 人妻aⅴ无码一区二区三区 | 日日摸天天摸爽爽狠狠97 | 人妻熟女一区 | 久久久久av无码免费网 | 国产精品人人爽人人做我的可爱 | 国产精品怡红院永久免费 | 亚洲人成影院在线无码按摩店 | 久激情内射婷内射蜜桃人妖 | 荫蒂添的好舒服视频囗交 | 国模大胆一区二区三区 | 日本爽爽爽爽爽爽在线观看免 | 日日摸天天摸爽爽狠狠97 | 精品无码av一区二区三区 | 日本一区二区三区免费高清 | 久久综合网欧美色妞网 | 亚洲一区二区三区含羞草 | 粉嫩少妇内射浓精videos | 国产精品无码一区二区桃花视频 | 国产无套内射久久久国产 | 日本xxxx色视频在线观看免费 | 无套内射视频囯产 | 任你躁在线精品免费 | 国产免费久久久久久无码 | 免费播放一区二区三区 | 大肉大捧一进一出好爽视频 | 一本色道久久综合亚洲精品不卡 | 日本精品少妇一区二区三区 | 国产超碰人人爽人人做人人添 | 久久久久久a亚洲欧洲av冫 | 内射巨臀欧美在线视频 | 亚洲精品一区国产 | 天天摸天天碰天天添 | 国产亚洲视频中文字幕97精品 | 国产97人人超碰caoprom | 激情内射日本一区二区三区 | 99久久精品国产一区二区蜜芽 | 九月婷婷人人澡人人添人人爽 | 亚洲精品成人福利网站 | 欧美老人巨大xxxx做受 | 国产亚洲精品久久久久久国模美 | 中文字幕+乱码+中文字幕一区 | 国产小呦泬泬99精品 | 久久久久av无码免费网 | 国产精品亚洲一区二区三区喷水 | 少妇人妻av毛片在线看 | 天海翼激烈高潮到腰振不止 | 精品亚洲韩国一区二区三区 | 黑人玩弄人妻中文在线 | 国产一区二区三区日韩精品 | 四虎影视成人永久免费观看视频 | 日本一卡二卡不卡视频查询 | 亚洲成av人在线观看网址 | 国产亚洲日韩欧美另类第八页 | 300部国产真实乱 | 国内综合精品午夜久久资源 | 亚洲精品欧美二区三区中文字幕 | 国产在线一区二区三区四区五区 | 婷婷色婷婷开心五月四房播播 | 久久精品人妻少妇一区二区三区 | 色情久久久av熟女人妻网站 | 久久综合色之久久综合 | 亚洲国产欧美日韩精品一区二区三区 | 高潮毛片无遮挡高清免费 | 狠狠色丁香久久婷婷综合五月 | 欧美一区二区三区视频在线观看 | 激情人妻另类人妻伦 | 久久无码专区国产精品s | 亚洲国产综合无码一区 | 亚洲综合久久一区二区 | 亚洲无人区一区二区三区 | 中文字幕 亚洲精品 第1页 | 久精品国产欧美亚洲色aⅴ大片 | 久久精品视频在线看15 | 一本无码人妻在中文字幕免费 | 一本色道婷婷久久欧美 | 牲欲强的熟妇农村老妇女 | 伊在人天堂亚洲香蕉精品区 | 久久精品国产一区二区三区肥胖 | 午夜精品久久久久久久 | 桃花色综合影院 | 中文字幕无线码免费人妻 | 免费中文字幕日韩欧美 | 国产一精品一av一免费 | 精品久久久久久人妻无码中文字幕 | 无码av岛国片在线播放 | 国产精品毛片一区二区 | 熟妇人妻无乱码中文字幕 | 精品偷拍一区二区三区在线看 | 国产亚洲欧美在线专区 | 99er热精品视频 | 少妇无码一区二区二三区 | 欧美黑人巨大xxxxx | 国产亚洲精品久久久久久久 | 三上悠亚人妻中文字幕在线 | 国产乱人无码伦av在线a | 乱人伦中文视频在线观看 | 国产人妻久久精品二区三区老狼 | 乱码午夜-极国产极内射 | 亚洲精品久久久久中文第一幕 | 国产国语老龄妇女a片 | 亚洲精品国产精品乱码视色 | 日韩人妻无码一区二区三区久久99 | 色五月五月丁香亚洲综合网 | 丝袜 中出 制服 人妻 美腿 | 中文字幕色婷婷在线视频 | 国产成人无码av片在线观看不卡 | 亚洲の无码国产の无码影院 | 男女作爱免费网站 | 丰满人妻翻云覆雨呻吟视频 | 小sao货水好多真紧h无码视频 | 国产美女极度色诱视频www | 伊人久久婷婷五月综合97色 | 国产内射爽爽大片视频社区在线 | 国产精品亚洲一区二区三区喷水 | 少妇人妻偷人精品无码视频 | 亚洲精品国产精品乱码视色 | 97夜夜澡人人双人人人喊 | 在线播放无码字幕亚洲 | 国产在线精品一区二区高清不卡 | 精品国产麻豆免费人成网站 | 久久久久久a亚洲欧洲av冫 | 亚洲国产精品一区二区第一页 | 日韩欧美中文字幕公布 | 久久久久成人精品免费播放动漫 | 无码一区二区三区在线观看 | 2019午夜福利不卡片在线 | 国产在线一区二区三区四区五区 | 丝袜美腿亚洲一区二区 | 亚洲精品国产精品乱码不卡 | √天堂中文官网8在线 | 无码人中文字幕 | 国内精品人妻无码久久久影院 | 国产xxx69麻豆国语对白 | 精品无人区无码乱码毛片国产 | 免费播放一区二区三区 | 欧美亚洲国产一区二区三区 | 国产乱人伦偷精品视频 | 精品无码国产自产拍在线观看蜜 | 欧洲欧美人成视频在线 | 亚洲国产高清在线观看视频 | 久久久久se色偷偷亚洲精品av | 久久伊人色av天堂九九小黄鸭 | 亚洲精品一区二区三区婷婷月 | 宝宝好涨水快流出来免费视频 | 欧美老妇交乱视频在线观看 | 成人片黄网站色大片免费观看 | 麻豆国产人妻欲求不满 | 黑人巨大精品欧美黑寡妇 | 国产成人无码一二三区视频 | 超碰97人人做人人爱少妇 | 国内揄拍国内精品人妻 | 女人色极品影院 | 影音先锋中文字幕无码 | 亚洲熟悉妇女xxx妇女av | 欧美日韩一区二区综合 | 亚洲区欧美区综合区自拍区 | 高中生自慰www网站 | 国产精品自产拍在线观看 | 国产免费久久久久久无码 | 在线观看欧美一区二区三区 | 未满成年国产在线观看 | 最新国产麻豆aⅴ精品无码 | 久久国产精品精品国产色婷婷 | 午夜男女很黄的视频 | 天堂亚洲2017在线观看 | 国产成人精品三级麻豆 | 色综合久久中文娱乐网 | 国内揄拍国内精品人妻 | 日本熟妇浓毛 | 国产精品亚洲综合色区韩国 | 在线亚洲高清揄拍自拍一品区 | 久久99热只有频精品8 | 国产成人一区二区三区别 | 少妇人妻av毛片在线看 | 无码成人精品区在线观看 | 青青青爽视频在线观看 | 亚洲色成人中文字幕网站 | 99麻豆久久久国产精品免费 | 精品成人av一区二区三区 | 超碰97人人射妻 | 亚洲性无码av中文字幕 | 日本一区二区三区免费高清 | 蜜臀aⅴ国产精品久久久国产老师 | 性欧美牲交xxxxx视频 | 国产精品亚洲а∨无码播放麻豆 | 精品人妻人人做人人爽夜夜爽 | 亚洲人成人无码网www国产 | 亚洲va欧美va天堂v国产综合 | 日日橹狠狠爱欧美视频 | 国内精品人妻无码久久久影院 | 青青青手机频在线观看 | 色综合久久中文娱乐网 | 蜜桃视频插满18在线观看 | 黑人巨大精品欧美一区二区 | 福利一区二区三区视频在线观看 | 亚洲热妇无码av在线播放 | 天天躁夜夜躁狠狠是什么心态 | 国产色xx群视频射精 | 久久 国产 尿 小便 嘘嘘 | 国产午夜亚洲精品不卡 | 无码成人精品区在线观看 | 日韩亚洲欧美中文高清在线 | 成人精品视频一区二区三区尤物 | 两性色午夜免费视频 | 欧美三级a做爰在线观看 | 精品人妻人人做人人爽 | 国产精品人妻一区二区三区四 | 日韩精品无码免费一区二区三区 | 久久亚洲日韩精品一区二区三区 | 亚洲区欧美区综合区自拍区 | 麻豆精产国品 | 人妻无码αv中文字幕久久琪琪布 | 亚洲精品一区三区三区在线观看 | 美女毛片一区二区三区四区 | 露脸叫床粗话东北少妇 | 精品国产aⅴ无码一区二区 | 国产精品久久久久久亚洲影视内衣 | 亚洲精品鲁一鲁一区二区三区 | 国产精品自产拍在线观看 | 一本色道久久综合狠狠躁 | 精品无码国产自产拍在线观看蜜 | 强辱丰满人妻hd中文字幕 | 波多野结衣高清一区二区三区 | 色婷婷香蕉在线一区二区 | 天堂а√在线中文在线 | 日本在线高清不卡免费播放 | 在线看片无码永久免费视频 | 曰本女人与公拘交酡免费视频 | 亚洲乱亚洲乱妇50p | 曰韩少妇内射免费播放 | 国产精品视频免费播放 | 国产精品美女久久久 | 四虎影视成人永久免费观看视频 | 99久久亚洲精品无码毛片 | 婷婷综合久久中文字幕蜜桃三电影 | 久久精品国产日本波多野结衣 | 国产亚洲视频中文字幕97精品 | 欧美老妇与禽交 | 国产人妻精品一区二区三区 | 国产欧美熟妇另类久久久 | 中文字幕乱码中文乱码51精品 | 亚洲国产高清在线观看视频 | 蜜桃视频韩日免费播放 | 国产精品亚洲一区二区三区喷水 | 国产精品无码一区二区三区不卡 | 亚洲乱码中文字幕在线 | 人人超人人超碰超国产 | 国产内射爽爽大片视频社区在线 | 精品国精品国产自在久国产87 | 俺去俺来也www色官网 | 又大又硬又爽免费视频 | 伊人久久婷婷五月综合97色 | 性做久久久久久久免费看 | 图片小说视频一区二区 | 97夜夜澡人人双人人人喊 | 国产成人综合色在线观看网站 | 精品偷拍一区二区三区在线看 | 欧美日韩人成综合在线播放 | 精品久久综合1区2区3区激情 | 亚洲 激情 小说 另类 欧美 | 中文无码精品a∨在线观看不卡 | 精品久久综合1区2区3区激情 | 给我免费的视频在线观看 | 久久久久se色偷偷亚洲精品av | 麻豆果冻传媒2021精品传媒一区下载 | 亚洲精品综合一区二区三区在线 | 岛国片人妻三上悠亚 | 亚洲精品国产品国语在线观看 | 精品熟女少妇av免费观看 | 国产无遮挡又黄又爽又色 | 亚洲综合精品香蕉久久网 | 精品久久久无码人妻字幂 | 久久99精品国产麻豆蜜芽 | 国产精品亚洲а∨无码播放麻豆 | 国产成人综合在线女婷五月99播放 | 久久精品国产精品国产精品污 | 在线观看欧美一区二区三区 | 亚洲小说春色综合另类 | 亚洲爆乳无码专区 | 免费网站看v片在线18禁无码 | 全球成人中文在线 | 国产精品永久免费视频 | 日本丰满熟妇videos | 亚洲乱码日产精品bd | 久久国产自偷自偷免费一区调 | 中文毛片无遮挡高清免费 | 99在线 | 亚洲 | 丁香啪啪综合成人亚洲 | 熟女体下毛毛黑森林 | 午夜理论片yy44880影院 | 无码人妻精品一区二区三区不卡 | 国色天香社区在线视频 | 啦啦啦www在线观看免费视频 | 欧美自拍另类欧美综合图片区 | 国产精品亚洲а∨无码播放麻豆 | 亚洲国产成人a精品不卡在线 | 精品无码一区二区三区的天堂 | 狂野欧美性猛xxxx乱大交 | 麻豆蜜桃av蜜臀av色欲av | 国产亚洲精品久久久久久大师 | 红桃av一区二区三区在线无码av | 亚欧洲精品在线视频免费观看 | 欧美日韩一区二区综合 | 青草视频在线播放 | 精品国产福利一区二区 | 无码毛片视频一区二区本码 | 欧美性猛交xxxx富婆 | 国产农村乱对白刺激视频 | 亚洲自偷自拍另类第1页 | 日本熟妇大屁股人妻 | 久久精品中文字幕大胸 | 国产内射老熟女aaaa | 少妇久久久久久人妻无码 | 亚洲精品综合一区二区三区在线 | 中文字幕无码日韩欧毛 | 一本色道久久综合狠狠躁 | 成人三级无码视频在线观看 | 亚洲国产精品一区二区美利坚 | 性生交片免费无码看人 | 国产av无码专区亚洲awww | 无码国产色欲xxxxx视频 | 无码福利日韩神码福利片 | 午夜肉伦伦影院 | 亚洲国产高清在线观看视频 | 午夜精品一区二区三区在线观看 | 欧美亚洲日韩国产人成在线播放 | 午夜福利电影 | 国产精品怡红院永久免费 | 国产乱子伦视频在线播放 | 动漫av网站免费观看 | 亚洲熟悉妇女xxx妇女av | 国产精品久久久久久无码 | 欧美第一黄网免费网站 | 亚洲精品鲁一鲁一区二区三区 | 秋霞成人午夜鲁丝一区二区三区 | 亚洲熟悉妇女xxx妇女av | 免费观看的无遮挡av | 久久综合给久久狠狠97色 | 性欧美熟妇videofreesex | 亚洲精品鲁一鲁一区二区三区 | 亚洲色欲色欲天天天www | 亚洲精品一区二区三区大桥未久 | а√天堂www在线天堂小说 | 精品国产一区二区三区av 性色 | 99精品无人区乱码1区2区3区 | 少妇性俱乐部纵欲狂欢电影 | 青草视频在线播放 | 亚洲欧美国产精品专区久久 | 东京无码熟妇人妻av在线网址 | 久久亚洲日韩精品一区二区三区 | 欧洲vodafone精品性 | 国产精品.xx视频.xxtv | 亚洲无人区午夜福利码高清完整版 | 亚洲午夜福利在线观看 | 欧美老熟妇乱xxxxx | 成人无码精品一区二区三区 | 亚洲精品综合一区二区三区在线 | 亚洲成av人综合在线观看 | 人人超人人超碰超国产 | 亚欧洲精品在线视频免费观看 | 国产真实夫妇视频 | 日本熟妇乱子伦xxxx | a片在线免费观看 | 亚欧洲精品在线视频免费观看 | 国产极品美女高潮无套在线观看 | 国产深夜福利视频在线 | 国内精品九九久久久精品 | 国产午夜亚洲精品不卡 | 小sao货水好多真紧h无码视频 | 日日麻批免费40分钟无码 | 日本免费一区二区三区最新 | 99riav国产精品视频 | 精品 日韩 国产 欧美 视频 | 国产精品无码一区二区三区不卡 | 国产小呦泬泬99精品 | 永久免费观看美女裸体的网站 | 人人澡人摸人人添 | 亚洲色在线无码国产精品不卡 | 国产色在线 | 国产 | 国产卡一卡二卡三 | 欧美黑人性暴力猛交喷水 | 欧美xxxx黑人又粗又长 | 亚洲国产日韩a在线播放 | 精品无码av一区二区三区 | 噜噜噜亚洲色成人网站 | 理论片87福利理论电影 | 人妻无码αv中文字幕久久琪琪布 | 欧美乱妇无乱码大黄a片 | 久久99国产综合精品 | 国产小呦泬泬99精品 | 国产成人综合美国十次 | 中文字幕乱码中文乱码51精品 | 无码福利日韩神码福利片 | 少妇太爽了在线观看 | 99久久亚洲精品无码毛片 | 午夜丰满少妇性开放视频 | 爽爽影院免费观看 | 四虎国产精品一区二区 | 男女超爽视频免费播放 | 丰满少妇熟乱xxxxx视频 | 日本护士xxxxhd少妇 | 性生交大片免费看女人按摩摩 | 亚洲熟妇色xxxxx欧美老妇y | 亚洲乱亚洲乱妇50p | 国产亚洲精品精品国产亚洲综合 | 55夜色66夜色国产精品视频 | 一本色道婷婷久久欧美 | 狠狠躁日日躁夜夜躁2020 | 内射爽无广熟女亚洲 | aⅴ亚洲 日韩 色 图网站 播放 | 日韩精品乱码av一区二区 | 激情人妻另类人妻伦 | 又粗又大又硬又长又爽 | 久青草影院在线观看国产 | 亚洲区欧美区综合区自拍区 | 动漫av网站免费观看 | 中文字幕日韩精品一区二区三区 | 欧美国产日韩亚洲中文 | 久久久精品成人免费观看 | 久久久久久久久888 | 亚洲成av人片在线观看无码不卡 | 97久久超碰中文字幕 | 久久99精品国产.久久久久 | 高潮毛片无遮挡高清免费视频 | 伊在人天堂亚洲香蕉精品区 | 狠狠亚洲超碰狼人久久 | 又黄又爽又色的视频 | 欧美兽交xxxx×视频 | 少妇无码av无码专区在线观看 | 国产午夜精品一区二区三区嫩草 | 国产色在线 | 国产 | 日本护士xxxxhd少妇 | 国产区女主播在线观看 | 99久久人妻精品免费二区 | 久久综合久久自在自线精品自 | 性生交大片免费看女人按摩摩 | 98国产精品综合一区二区三区 | 国产亚洲人成在线播放 | 国产亚洲美女精品久久久2020 | 亚洲欧洲中文日韩av乱码 | 亚洲国产精品美女久久久久 | 亚洲人成影院在线无码按摩店 | 精品久久久久久亚洲精品 | 婷婷五月综合缴情在线视频 | 亚洲熟熟妇xxxx | 中文字幕av无码一区二区三区电影 | 日本精品少妇一区二区三区 | 丰满少妇弄高潮了www | 久久人人爽人人人人片 | 在线欧美精品一区二区三区 | 国产另类ts人妖一区二区 | 撕开奶罩揉吮奶头视频 | 国产真实乱对白精彩久久 | 久久精品无码一区二区三区 | 六月丁香婷婷色狠狠久久 | 欧美激情综合亚洲一二区 | 国产莉萝无码av在线播放 | 人妻无码久久精品人妻 | 无套内谢的新婚少妇国语播放 | 最新国产乱人伦偷精品免费网站 | 国产精品久久久午夜夜伦鲁鲁 | 曰本女人与公拘交酡免费视频 | 国产在线无码精品电影网 | 在线观看国产午夜福利片 | 成人无码精品1区2区3区免费看 | 欧美日韩在线亚洲综合国产人 | 亚洲小说图区综合在线 | 亚洲欧美色中文字幕在线 | 无码一区二区三区在线 | 最新版天堂资源中文官网 | 国产农村妇女高潮大叫 | 扒开双腿疯狂进出爽爽爽视频 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 国产午夜视频在线观看 | 九九综合va免费看 | 妺妺窝人体色www在线小说 | 无码纯肉视频在线观看 | 极品嫩模高潮叫床 | 婷婷综合久久中文字幕蜜桃三电影 | 亚洲精品www久久久 | 鲁大师影院在线观看 | 久久亚洲日韩精品一区二区三区 | 国产精品无码成人午夜电影 | 小sao货水好多真紧h无码视频 | 麻豆精品国产精华精华液好用吗 | 色偷偷人人澡人人爽人人模 | 亚洲va欧美va天堂v国产综合 | 日韩精品无码一本二本三本色 | 精品日本一区二区三区在线观看 | 亚洲欧美日韩国产精品一区二区 | 日本va欧美va欧美va精品 | 亚洲国产综合无码一区 | 亚洲精品一区二区三区四区五区 | 一本久久a久久精品vr综合 | 老熟妇乱子伦牲交视频 | 伊人色综合久久天天小片 | 野狼第一精品社区 | 久久综合给久久狠狠97色 | 久久久国产一区二区三区 | 成熟人妻av无码专区 | 久久久久久av无码免费看大片 | 图片区 小说区 区 亚洲五月 | 一本色道久久综合亚洲精品不卡 | 日本大乳高潮视频在线观看 | 最近的中文字幕在线看视频 | 久久精品成人欧美大片 | 夜夜夜高潮夜夜爽夜夜爰爰 | 国产午夜亚洲精品不卡下载 | 人人妻人人藻人人爽欧美一区 | 麻豆国产丝袜白领秘书在线观看 | 久久精品国产一区二区三区 | 伊人久久大香线蕉av一区二区 | 小sao货水好多真紧h无码视频 | 精品夜夜澡人妻无码av蜜桃 | 亚洲自偷自偷在线制服 | 曰韩无码二三区中文字幕 | 丰满人妻精品国产99aⅴ | 狠狠色噜噜狠狠狠7777奇米 | 67194成是人免费无码 | 特大黑人娇小亚洲女 | 国产又粗又硬又大爽黄老大爷视 | 精品厕所偷拍各类美女tp嘘嘘 | 久久人人爽人人爽人人片ⅴ | 久久综合久久自在自线精品自 | 撕开奶罩揉吮奶头视频 | 成人欧美一区二区三区 | 久久久久国色av免费观看性色 | 精品国偷自产在线视频 | 国产精品二区一区二区aⅴ污介绍 | 理论片87福利理论电影 | 婷婷色婷婷开心五月四房播播 | 乌克兰少妇性做爰 | 在线精品国产一区二区三区 | 国产婷婷色一区二区三区在线 | 午夜福利一区二区三区在线观看 | 婷婷五月综合缴情在线视频 | 国产9 9在线 | 中文 | 2020最新国产自产精品 | а√天堂www在线天堂小说 | 国产麻豆精品精东影业av网站 | 偷窥日本少妇撒尿chinese | 国产艳妇av在线观看果冻传媒 | 日日摸日日碰夜夜爽av | 精品人妻中文字幕有码在线 | 熟妇女人妻丰满少妇中文字幕 | 十八禁视频网站在线观看 | 欧美xxxxx精品 | 成人一区二区免费视频 | 大乳丰满人妻中文字幕日本 | 东京热男人av天堂 | 色欲综合久久中文字幕网 | 丰满少妇女裸体bbw | 日韩人妻无码一区二区三区久久99 | 内射巨臀欧美在线视频 | 国产 浪潮av性色四虎 | 人妻少妇精品无码专区二区 | 国产色视频一区二区三区 | 嫩b人妻精品一区二区三区 | 人人妻人人澡人人爽精品欧美 | 亚洲国精产品一二二线 | 国产 精品 自在自线 | 97se亚洲精品一区 | 女人被男人躁得好爽免费视频 | 亚洲精品久久久久avwww潮水 | 欧美成人午夜精品久久久 | 国产人妻人伦精品 | 永久免费精品精品永久-夜色 | 精品久久8x国产免费观看 | 自拍偷自拍亚洲精品10p | 欧美国产日产一区二区 | 久久久久久久女国产乱让韩 | 国产又爽又黄又刺激的视频 | 红桃av一区二区三区在线无码av | 成人女人看片免费视频放人 | 东京一本一道一二三区 | 一区二区三区乱码在线 | 欧洲 | 亚洲成av人片在线观看无码不卡 | 国语精品一区二区三区 | 精品久久久久久亚洲精品 | 国产午夜手机精彩视频 | 暴力强奷在线播放无码 | 大屁股大乳丰满人妻 | 国产手机在线αⅴ片无码观看 | 欧美熟妇另类久久久久久不卡 | 色一情一乱一伦 | 精品人妻av区 | 欧美成人免费全部网站 | 曰韩少妇内射免费播放 | 狠狠色噜噜狠狠狠7777奇米 | aa片在线观看视频在线播放 | 丰满人妻精品国产99aⅴ | 国产成人无码区免费内射一片色欲 | 在线欧美精品一区二区三区 | 九九久久精品国产免费看小说 | 波多野结衣乳巨码无在线观看 | 波多野结衣 黑人 | 亚洲s码欧洲m码国产av | 亚洲自偷自拍另类第1页 | 欧美国产日韩久久mv | 少妇无码av无码专区在线观看 | 内射老妇bbwx0c0ck | 中文字幕色婷婷在线视频 | 99精品国产综合久久久久五月天 | 免费播放一区二区三区 | 少妇的肉体aa片免费 | 伦伦影院午夜理论片 | ass日本丰满熟妇pics | 亚洲国产精品成人久久蜜臀 | 在线亚洲高清揄拍自拍一品区 | 人妻少妇精品视频专区 | 国产亚洲日韩欧美另类第八页 | 亚洲国产精品一区二区第一页 | 久久国产劲爆∧v内射 | 日本精品高清一区二区 | 野外少妇愉情中文字幕 | 粗大的内捧猛烈进出视频 | 日本精品高清一区二区 | 亚洲精品成a人在线观看 | 国产欧美熟妇另类久久久 | 精品偷自拍另类在线观看 | 日日天日日夜日日摸 | 国内精品人妻无码久久久影院 | 无套内谢老熟女 | 夜精品a片一区二区三区无码白浆 | 亚洲色偷偷男人的天堂 | 免费观看又污又黄的网站 | 中文字幕无线码免费人妻 | 无码国模国产在线观看 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 国产一区二区不卡老阿姨 | 日本一区二区三区免费播放 | 国产区女主播在线观看 | 国产精品亚洲а∨无码播放麻豆 | 精品久久久中文字幕人妻 | 强辱丰满人妻hd中文字幕 | 国产精品久久精品三级 | 国产欧美精品一区二区三区 | 亚洲 激情 小说 另类 欧美 | 人妻天天爽夜夜爽一区二区 | 国产熟妇高潮叫床视频播放 | 午夜精品一区二区三区在线观看 | 高中生自慰www网站 | 国产婷婷色一区二区三区在线 | 久久精品女人天堂av免费观看 | 亚洲欧洲日本无在线码 | 伊人久久大香线蕉av一区二区 | 中文字幕无码av波多野吉衣 | 日韩人妻无码中文字幕视频 | 蜜桃av抽搐高潮一区二区 | 全黄性性激高免费视频 | 欧美 丝袜 自拍 制服 另类 |