首页 > 学院 > 开发设计 > 正文

博客笔记总结2

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

37.导入框架方法38.全局断点+僵尸模式%20排错39.模糊效果[objc] view%20plain copy // 模糊效果      UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];      UIVisualEffectView *test = [[UIVisualEffectView alloc] initWithEffect:effect];      test.frame = self.view.bounds;      test.alpha = 0.5;      [self.view addSubview:test];  40.在状态栏显示有网络请求的提示器[objc] view%20plain copy //- (void)webViewDidStartLoad:(UIWebView *)webView {  //    [UIapplication sharedApplication].networkActivityIndicatorVisible = YES;  //}  //- (void)webViewDidFishLoad:(UIWebView *)webView {  //    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;  //}  //接收响应  // 在状态栏显示有网络请求的提示器  //- (void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)response{  //      //    //网络活动指示器  //      //    [UIApplication sharedApplication].networkActivityIndicatorVisible=YES;  //      //}    //隐藏状态栏    //- (BOOL)PRefersstatusBarHidden  //  //{  //      //    return YES;  //      //}  41.监测网络状态只要网络状态发生了变化,在任何一个视图控制器都会给出相应的提示

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

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