美文网首页
iOS开发小技巧(持续更新)

iOS开发小技巧(持续更新)

作者: 着魔的毛豆 | 来源:发表于2016-06-13 11:19 被阅读73次

    iOS 开发小技巧(持续更新)

    • 1.tableview中不显示没有内容的cell
    self.tableView.tableFooterView = [[UIView alloc] init];```
    
    - 2.怎么像Safari一样滑动的时候隐藏navigationbar
    ``` objectivec
    self.navigationController.hidesBarsOnSwipe = Yes;```
    
    - 3.导航条返回键带的title太讨厌了,怎么让它消失?
    ``` objectivec
    [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) forBarMetrics:UIBarMetricsDefault];
    
    • 4.ScrollView莫名其妙不能在viewController划到顶怎么办?
    self.automaticallyAdjustsScrollViewInsets = NO; 
    
    • 5.怎么点击self.view就让键盘收起
     - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {  
    [self.view endEditing:YES];
     }
    
    • 6.怎么把tableview里Cell的小对勾颜色改成别的颜色?
    objectivec = [UIColor redColor]; 
    
    • 7.本来我的statusbar是lightcontent的,结果用UIImagePickerController会导致我的statusbar的样式变成黑色,怎么办?
     - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { 
     [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
     } 
    
    • 8 .怎么把我的navigationbar弄成透明的而不是带模糊的效果?
    [self.navigationBar setBackgroundImage:[UIImage new]  forBarMetrics:UIBarMetricsDefault]; 
    self.navigationBar.shadowImage = [UIImage new]; 
    self.navigationBar.translucent = YES; 
    
    • 9.怎么改变uitextfield placeholder的颜色和位置?
     - (void) drawPlaceholderInRect:(CGRect)rect {  
    [[UIColor blueColor] setFill]; 
     [self.placeholder drawInRect:rect withFont:self.font lineBreakMode:UILineBreakModeTailTruncation alignment:self.textAlignment]; 
    }
    
    • 10.NSString过滤特殊字符
    // 定义一个特殊字符的集合
    NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:"@/:;()¥「」"、[]{}#%-*+=_\|~<>$€^•'@#$%^&*()_+'""];
    // 过滤字符串的特殊字符
    NSString *newString = [trimString stringByTrimmingCharactersInSet:set];
    
    • 11.左右抖动动画
    //1, 创建核心动画
    CAKeyframeAnimation *keyAnima = [CAKeyframeAnimation animation];  
    //2, 告诉系统执行什么动画。
    keyAnima.keyPath = @"transform.rotation"; keyAnima.values = @[@(-M_PI_4 /90.0 * 5),@(M_PI_4 /90.0 * 5),@(-M_PI_4 /90.0 * 5)];  
    // 3, 执行完之后不删除动画
     keyAnima.removedOnCompletion = NO;  
    // 4, 执行完之后保存最新的状态
     keyAnima.fillMode = kCAFillModeForwards;  
    // 5, 动画执行时间
     keyAnima.duration = 0.2;  
    // 6, 设置重复次数。
     keyAnima.repeatCount = MAXFLOAT;  
    // 7, 添加核心动画
     [self.iconView.layer addAnimation:keyAnima forKey:nil];
    
    • 12.屏幕截图
    // 1. 开启一个与图片相关的图形上下文 UIGraphicsBeginImageContextWithOptions(self.view.bounds.size,NO,0.0);  
    // 2. 获取当前图形上下文
     CGContextRef ctx = UIGraphicsGetCurrentContext();  
    // 3. 获取需要截取的view的layer 
    [self.view.layer renderInContext:ctx];  
    // 4. 从当前上下文中获取图片
     UIImage *image = UIGraphicsGetImageFromCurrentImageContext();  
    // 5. 关闭图形上下文 
    UIGraphicsEndImageContext();  
    // 6. 把图片保存到相册 UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
    
    • 13.强制横屏
    #pragma mark - 强制横屏代码
     - (BOOL)shouldAutorotate{  
    //是否支持转屏  
    return NO;
    }
     - (UIInterfaceOrientationMask)supportedInterfaceOrientations{  
    //支持哪些转屏方向  
    return UIInterfaceOrientationMaskLandscape;
    }
     - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{  
    return UIInterfaceOrientationLandscapeRight;
    }
     - (BOOL)prefersStatusBarHidden{  
    return NO;
    }
    
    • 14.应用程序的生命周期
    //1,启动但还没进入状态保存 :
     - (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
    //2,基本完成程序准备开始运行:
     - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    //3,当应用程序将要入非活动状态执行,应用程序不接收消息或事件,比如来电话了:
     - (void)applicationWillResignActive:(UIApplication *)application  
    //4,当应用程序入活动状态执行,这个刚好跟上面那个方法相反:
     - (void)applicationDidBecomeActive:(UIApplication *)application  
    //5,当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可:
     - (void)applicationDidEnterBackground:(UIApplication *)application 
    //6,当程序从后台将要重新回到前台时候调用,这个刚好跟上面的那个方法相反:
     - (void)applicationWillEnterForeground:(UIApplication *)application  
    //7,当程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作:
     - (void)applicationWillTerminate:(UIApplication *)application
    
    • 15.视图的生命周期
    1、 alloc 创建对象,分配空间
    2、 init (initWithNibName) 初始化对象,初始化数据
    3、 loadView 从nib载入视图 ,除非你没有使用xib文件创建视图
    4、 viewDidLoad 载入完成,可以进行自定义数据以及动态创建其他控件
    5、 viewWillAppear视图将出现在屏幕之前,马上这个视图就会被展现在屏幕上了
    6、 viewDidAppear 视图已在屏幕上渲染完成
    7、viewWillDisappear 视图将被从屏幕上移除之前执行
    8、viewDidDisappear 视图已经被从屏幕上移除,用户看不到这个视图了
    9、dealloc 视图被销毁,此处需要对你在init和viewDidLoad中创建的对象进行释放. viewVillUnload- 当内存过低,即将释放时调用;viewDidUnload-当内存过低,释放一些不需要的视图时调用。
    
    • 16 将汉字转换为不带音调的拼音
     - (NSString *)transformMandarinToLatin:(NSString *)string {  
    NSMutableString *preString = [string mutableCopy];  
    /*转换成成带音 调的拼音*/  
    CFStringTransform((CFMutableStringRef)preString, NULL, kCFStringTransformMandarinLatin, NO); 
     /*去掉音调*/  
    CFStringTransform((CFMutableStringRef)preString, NULL, kCFStringTransformStripDiacritics, NO);  return preString; 
    }
    

    相关文章

      网友评论

          本文标题:iOS开发小技巧(持续更新)

          本文链接:https://www.haomeiwen.com/subject/sjrydttx.html