博客笔记总结2
发布日期:2021-06-29 04:42:44 浏览次数:3 分类:技术文章

本文共 7159 字,大约阅读时间需要 23 分钟。

31. UIImage
[objc]   
 
  1. UIImage image = [UIImage imageNamed:@“ha.jpg”];  
  2. 【特别注意】imageNamed:带有缓存,通过imageNamed创建的图片会放到缓存中  
  3. UIImage image = [UIImage imageWithContentsOfFile:path];  
  4. 【特别注意】imageWithContentsOfFile:不带缓存,所以图片量比较大得时候,用这个方法  
  5.   
  6. 延迟(时间参数)执行(clearImages)方法  
  7. [self performSelector:@selector(clearImages) withObject:nil afterDelay:(延迟多长时间参数)];  
32. UIImageView做动画
[objc]   
 
  1. NSArray *animationImages; // 把图片赋值给动画数组【帧动画】  
  2. NSInteger animationRepeatCount; // 默认是0,无限循环  
  3. NSTimeInterval animationDuration; // 执行一轮图片的时间  
33.返回cell高度
[objc]   
 
  1. - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {  
  2.     NSString *string = self.lrcArr[indexPath.row];  
  3.   
  4.     CGRect frame = [string boundingRectWithSize:CGSizeMake([UIScreen mainScreen].bounds.size.width10000) options:(NSStringDrawingUsesLineFragmentOrigin) attributes:[NSDictionary dictionaryWithObject:[UIFont systemFontOfSize:17] forKey:NSFontAttributeName] context:nil];  
  5.   
  6.     return frame.size.height;  
  7. }  
34.图片缓存的基本代码,就是这么简单
[objc]   
 
  1. [imageView sd_setImageWithURL:[NSURL URLWithString:self.titleImageArray[i]]];  
35.在storyboard上添加ScrollView
36.相对路径

$(SRCROOT)/

37.导入框架方法
38.全局断点+僵尸模式 排错
39.模糊效果
[objc]   
 
  1. // 模糊效果  
  2.     UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];  
  3.     UIVisualEffectView *test = [[UIVisualEffectView alloc] initWithEffect:effect];  
  4.     test.frame = self.view.bounds;  
  5.     test.alpha = 0.5;  
  6.     [self.view addSubview:test];  
40.在状态栏显示有网络请求的提示器
[objc]   
 
  1. //- (void)webViewDidStartLoad:(UIWebView *)webView {
      
  2. //    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;  
  3. //}  
  4. //- (void)webViewDidFishLoad:(UIWebView *)webView {
      
  5. //    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;  
  6. //}  
  7. //接收响应  
  8. // 在状态栏显示有网络请求的提示器  
  9. //- (void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)response{
      
  10. //      
  11. //    //网络活动指示器  
  12. //      
  13. //    [UIApplication sharedApplication].networkActivityIndicatorVisible=YES;  
  14. //      
  15. //}  
  16.   
  17. //隐藏状态栏  
  18.   
  19. //- (BOOL)prefersStatusBarHidden  
  20. //  
  21. //{
      
  22. //      
  23. //    return YES;  
  24. //      
  25. //}  
41.监测网络状态

只要网络状态发生了变化,在任何一个视图控制器都会给出相应的提示

说明: 这里需要导入第三方库,1. MBProgressHUD 2. AFNetworking
导入头文件 MBProgressHUD.h, AFNetworking.h

[objc]   
 
  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
  2.     // 应用程序加载完成  
  3.   
  4.     UIWindow *window = ((AppDelegate *) [UIApplication sharedApplication].delegate).window;  
  5.   
  6.     AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];  
  7.     [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {  
  8.         // 使用MBProgressHUD三方库创建弹框,给出相应的提示  
  9.         MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:window animated:YES];  
  10.         hud.mode = MBProgressHUDModeText;  
  11.         switch (status) {  
  12.             case AFNetworkReachabilityStatusNotReachable:  
  13.                 // 弹框提示的内容  
  14.                 hud.labelText = @"世界上最遥远的距离就是没网";  
  15.                 break;  
  16.             case AFNetworkReachabilityStatusReachableViaWWAN:  
  17.                 hud.labelText = @"2G/3G/4G";  
  18.                 break;  
  19.             case AFNetworkReachabilityStatusReachableViaWiFi:  
  20.                 hud.labelText = @"WiFi在线";  
  21.             default:  
  22.                 break;  
  23.         }  
  24.         dispatch_async(dispatch_get_global_queue(00), ^{  
  25.             // 显示时间2s  
  26.             sleep(2);  
  27.             dispatch_async(dispatch_get_main_queue(), ^{  
  28.                 // 让弹框消失  
  29.                 [MBProgressHUD hideHUDForView:window animated:YES];  
  30.             });  
  31.         });  
  32.     }];  
  33.     [manager startMonitoring];  
  34.   
  35.     return YES;  
  36. }  
另一种:
42.将window上的显示在最外层
[objc]   
 
  1. [[[[UIApplication sharedApplication] delegate] window] addSubview:topImgView];  
43.强制横屏代码
[objc]   
 
  1. #pragma mark - 强制横屏代码  
  2. - (BOOL)shouldAutorotate  
  3. {  
  4.     //是否支持转屏  
  5.     return NO;  
  6. }  
  7.   
  8. - (UIInterfaceOrientationMask)supportedInterfaceOrientations  
  9. {  
  10.     //支持哪些转屏方向  
  11.     return UIInterfaceOrientationMaskLandscape;  
  12. }  
  13.   
  14. - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation  
  15. {  
  16.     return UIInterfaceOrientationLandscapeRight;  
  17. }  
  18.   
  19. - (BOOL)prefersStatusBarHidden  
  20. {  
  21.     return NO;  
  22. }  
44.添加每个cell出现时的3D动画
[objc]   
 
  1. -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{  
  2.   
  3.     // 动画1  
  4.     //    CATransform3D rotation;//3D旋转  
  5.     //    rotation = CATransform3DMakeRotation( (90.0*M_PI)/180, 0.0, 0.7, 0.4);  
  6.     //    //逆时针旋转  
  7.     //    rotation.m34 = 1.0/ -600;  
  8.     //  
  9.     //    cell.layer.shadowColor = [[UIColor blackColor]CGColor];  
  10.     //    cell.layer.shadowOffset = CGSizeMake(10, 10);  
  11.     //    cell.alpha = 0;  
  12.     //  
  13.     //    cell.layer.transform = rotation;  
  14.     //  
  15.     //    [UIView beginAnimations:@"rotation" context:NULL];  
  16.     //    //旋转时间  
  17.     //    [UIView setAnimationDuration:0.8];  
  18.     //    cell.layer.transform = CATransform3DIdentity;  
  19.     //    cell.alpha = 1;  
  20.     //    cell.layer.shadowOffset = CGSizeMake(0, 0);  
  21.     //    [UIView commitAnimations];  
  22.   
  23.   
  24.   
  25.   
  26.     // 动画2  
  27.     cell.alpha = 0.5;  
  28.   
  29.     CGAffineTransform transformScale = CGAffineTransformMakeScale(0.3,0.8);  
  30.     CGAffineTransform transformTranslate = CGAffineTransformMakeTranslation(0.50.6);  
  31.   
  32.     cell.transform = CGAffineTransformConcat(transformScale, transformTranslate);  
  33.   
  34.     [tableView bringSubviewToFront:cell];  
  35.     [UIView animateWithDuration:.4f  
  36.                           delay:0  
  37.                         options:UIViewAnimationOptionAllowUserInteraction  
  38.                      animations:^{  
  39.   
  40.                          cell.alpha = 1;  
  41.                          //清空 transform  
  42.                          cell.transform = CGAffineTransformIdentity;  
  43.   
  44.                      } completion:nil];  
  45.   
  46.   
  47.   
  48.   
  49.   
  50.     // 动画3  
  51.     /* 
  52.      // 从锚点位置出发,逆时针绕 Y 和 Z 坐标轴旋转90度 
  53.      CATransform3D transform3D = CATransform3DMakeRotation(M_PI_2, 0.0, 1.0, 1.0); 
  54.  
  55.      // 定义 cell 的初始状态 
  56.      cell.alpha = 0.0; 
  57.      cell.layer.transform = transform3D; 
  58.      cell.layer.anchorPoint = CGPointMake(0.0, 0.5); // 设置锚点位置;默认为中心点(0.5, 0.5) 
  59.  
  60.      // 定义 cell 的最终状态,执行动画效果 
  61.      // 方式一:普通操作设置动画 
  62.      [UIView beginAnimations:@"transform" context:NULL]; 
  63.      [UIView setAnimationDuration:0.5]; 
  64.      cell.alpha = 1.0; 
  65.      cell.layer.transform = CATransform3DIdentity; 
  66.      CGRect rect = cell.frame; 
  67.      rect.origin.x = 0.0; 
  68.      cell.frame = rect; 
  69.      [UIView commitAnimations]; 
  70.  
  71.      // 方式二:代码块设置动画 
  72.      //        [UIView animateWithDuration:0.5 animations:^{
     
  73.      //                cell.alpha = 1.0; 
  74.      //                 cell.layer.transform = CATransform3DIdentity; 
  75.      //                CGRect rect = cell.frame; 
  76.      //                 rect.origin.x = 0.0; 
  77.      //            cell.frame = rect; 
  78.      //             }]; 
  79.  
  80.      */  
  81.   
  82.   
  83.   
  84.   
  85.   
  86. }  
45.block传值
[objc]   
 
  1. block回调进行传值操作     
  2. 首先思考你的值在什么地方(哪个控制器)A  
  3. 谁需要这个值 B  
  4.   
  5. 一般block都是从后往前传值即(A对象先初始化 在A对象的生命周期中因为某些情况 需要B对象提供一个参数,那我们是在A的实现中初始化了B对象 A对象就可以获取到B对象 那就意味着可以将B对象的block.实现在A的肚子里 B对象可以获取到参数,获取到参数之后调用自己的block,就相当于方法调用,因为这个block实现在A中,所以系统会回到A的肚子里执行block的实现);  
  6. 示例  
  7.   
  8. A控制器中的一个按钮方法  
  9. -(void)buttonAction{  
  10. //初始化一个B控制器  
  11.     B *bVC = [B new];  
  12. //实现B控制器的block  
  13.    bVC.block = ^(参数类型  *参数名称){  
  14.       nslog:(@“这是block的实现    获取到参数%@”,参数名称);  
  15.    };  
  16. }  
  17.   
  18. B控制器中请求数据的方法  
  19. -(void)requestData{  
  20.   
  21. //获取到数据后调用自己的block并传入参数  
  22.   
  23.    self.block(参数) ;    调用block的时候系统回去寻找这个block的实现 无论它在哪里实现都会执行 如果没有实现会导致奔溃 所以我们一般会加个if判断一下是否实现了block  
46.iPhone尺寸规格
47.判断程序是否第一次启动
[objc]   
 
  1. if(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]){  
  2.        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstLaunch"];  
  3.        NSLog(@"第一次启动");  
  4.        [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"isLogin"];  
  5.   
  6.    }else{  
  7.        NSLog(@"已经不是第一次启动了");  
  8.    }  
48.修改状态栏颜色
iOS7默认状态栏文字颜色为黑色,项目需要修改为白色。
[objc]   
 
  1. 1在Info.plist中设置UIViewControllerBasedStatusBarAppearance 为NO  
  2. 2 在需要改变状态栏颜色的 AppDelegate中在 didFinishLaunchingWithOptions 方法中增加:   
  3. [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];  
  4. 如果需要在单个ViewController中添加,在ViewDidLoad方法中增加:  
  5. [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];  
49.一行代码解决改变展位图文本颜色代码
[objc]   
 
  1. [_userName setValue:[UIColor whiteColor] forKeyPath:@"_placeholderLabel.textColor"];  
50.禁止横屏方法
[objc]   
 
  1. - (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window    
  2. {    
  3.     return UIInterfaceOrientationMaskPortrait;    
  4. }  

转载地址:https://blog.csdn.net/zhanghaibo369/article/details/54910657 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:博客笔记总结1
下一篇:dispatch_sync死锁

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月22日 13时48分09秒