zoukankan      html  css  js  c++  java
  • 自学知识(三)

    1.设置状态栏的样式:

    1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    2     // Override point for customization after application launch.
    3      [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
    4     return YES;
    5 }

    2.数组的遍历:

    - (NSEnumerator *)objectEnumerator;从前向后

    - (NSEnumerator *)reverseObjectEnumerator;从后向前

            NSArray* reversedArray = [[_myArray reverseObjectEnumerator] allObjects];

    3. 设置导航栏的标题样式:

    1  NSDictionary *dic = @{NSFontAttributeName:[UIFont systemFontOfSize:40],NSForegroundColorAttributeName:[UIColor redColor]};
    2     
    3 //    self.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor blackColor] forKey:NSForegroundColorAttributeName];
    4     self.navigationBar.titleTextAttributes = dic;
    5     

    4.复写pushViewController方法,隐藏标签栏:

    1 #pragma mark 隐藏tabbar
    2 -(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
    3 {
    4     
    5     if (self.viewControllers.count > 0) {
    6         viewController.hidesBottomBarWhenPushed = YES;
    7     }
    8     [super pushViewController:viewController animated:YES];
    9 }

    5.

    IOS7之后   self.edgesForExtendedLayout=UIRectEdgeNone;

    self.automaticallyAdjustsScrollViewInsets=NO;
    

    只要设置了 self.edgesForExtendedLayout ,UIRectEdgeAll的时候会让tableView从导航栏下移44px,设置为UIRectEdgeNone的时候,刚刚在导航栏下面。

    self.edgesForExtendedLayout=UIRectEdgeNone or UIRectEdgeAll;
    self.automaticallyAdjustsScrollViewInsets=YES;
    

    有的时候只要automaticallyAdjustsScrollViewInsets设置了YES,不管其他任何值tableView都会在导航栏下面, 
    手动改self.tableView.contentInset=UIEdgeInsetsMake(64, 0, 0, 0);也不影响tableView在导航栏下面。

    6.设置选中TabBarItem的样式和正常状态样式:

    1 [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor grayColor], NSForegroundColorAttributeName, nil] forState:UIControlStateNormal];
    2     
    3 [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor blackColor], NSForegroundColorAttributeName, nil] forState:UIControlStateSelected];
    4     

    7.不设置渲染,会是系统默认的蓝色效果:

    1 if (iOS7) {
    2         childController.tabBarItem.image = [normal imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    3         childController.tabBarItem.selectedImage = [selected imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    4     }else{
    5         childController.tabBarItem.selectedImage = selected;
    6     }
    7     

    设置UIImage的渲染模式:UIImage.renderingMode

    着色(Tint Color)是iOS7界面中的一个.设置UIImage的渲染模式:UIImage.renderingMode重大改变,你可以设置一个UIImage在渲染时是否使用当前视图的Tint Color。UIImage新增了一个只读属性:renderingMode,对应的还有一个新增方法:imageWithRenderingMode:,它使用UIImageRenderingMode枚举值来设置图片的renderingMode属性。该枚举中包含下列值:

    1. UIImageRenderingModeAutomatic  // 根据图片的使用环境和所处的绘图上下文自动调整渲染模式。  
    2. UIImageRenderingModeAlwaysOriginal   // 始终绘制图片原始状态,不使用Tint Color。  
    3. UIImageRenderingModeAlwaysTemplate   // 始终根据Tint Color绘制图片,忽略图片的颜色信息。  

    8.

    //不设置此处会导致View上移

        if(iOS7) {

            self.edgesForExtendedLayout = UIRectEdgeNone;

            self.extendedLayoutIncludesOpaqueBars = NO;

            self.modalPresentationCapturesStatusBarAppearance = NO;

        }

     

    9.网络请求注意点:

     1 + (void)getWithURL:(NSString *)url params:(NSDictionary *)params success:(HttpSuccess)success failure:(HttpFailure)failure{
     2     //1.使用 NSURLConnection版本的AFNetworking
     3     //1.1创建一个AFN管理对象
     4     AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
     5     //1.2告诉manager只下载原始数据, 不要解析数据(一定要写)
     6     //AFN即可以下载网络数据, 又可以解析json数据,如果不写下面的  自动就解析json
     7     //由于做服务器的人返回json数据往往不规范, 凡是AFN又检查很严格,导致json解析往往失败
     8     //下面这句话的意思是 告诉AFN千万别解析, 只需要给我裸数据就可以
     9     manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    10     [manager GET:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
    11         NSData *data = operation.responseData;
    12         NSDictionary *dict = [NSJSONSerialization  JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
    13         if (success) {
    14             success(dict);
    15         }
    16     }failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    17         if (failure) {
    18             failure(error);
    19         }
    20     }];
    21 }
  • 相关阅读:
    VisualSVN 服务不能自动启动的问题
    "There is already an open DataReader associated with this Command which must be closed first"错误
    LINQ 中调用存储过程自动绑定列名
    vs2008中调试iis7.0托管的程序
    SQL SERVER 2005的一个怪问题: 在查询结果面板中编辑失败.
    在VS2003下把一个DataTable Update 到数据库
    帮人解决一个小问题:QQ空间登录时脚本错误造成无法登入
    关于Sys未定义错误
    多层母版页嵌套中, 内层母版页的事件默认不触发
    线程同步
  • 原文地址:https://www.cnblogs.com/pengsi/p/5345605.html
Copyright © 2011-2022 走看看