个人iOS项目常用效果方法注意点集锦(上)

这篇博客汇总了iOS开发中常见的效果和方法,包括禁止横屏、状态栏颜色修改、网络状态监测、图片缓存、代理安全保护、视图动画等。还涉及cell高度计算、网络请求图片、自定义页面控制等实用技巧。
摘要由CSDN通过智能技术生成
50.禁止横屏方法
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window  
{  
    return UIInterfaceOrientationMaskPortrait;  
}
49.一行代码解决改变展位图文本颜色代码
[_userName setValue:[UIColor whiteColor] forKeyPath:@"_placeholderLabel.textColor"];
48.修改状态栏颜色

iOS7默认状态栏文字颜色为黑色,项目需要修改为白色。

1在Info.plist中设置UIViewControllerBasedStatusBarAppearanceNO
2 在需要改变状态栏颜色的 AppDelegate中在 didFinishLaunchingWithOptions 方法中增加: 
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
如果需要在单个ViewController中添加,在ViewDidLoad方法中增加:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

屏幕快照 2016-01-24 下午8.14.40.png
47.判断程序是否第一次启动
    if(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]){
        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstLaunch"];
        NSLog(@"第一次启动");
        [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"isLogin"];

    }else{
        NSLog(@"已经不是第一次启动了");
    }
46.iPhone尺寸规格

iPhone尺寸规格.png
45.模糊效果
    // 模糊效果
//    UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
//    UIVisualEffectView *test = [[UIVisualEffectView alloc] initWithEffect:effect];
//    test.frame = self.view.bounds;
//    test.alpha = 0.5;
//    [self.view addSubview:test];
44.block传值
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

}
43.添加每个cell出现时的3D动画
-(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); // 设置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值