zoukankan      html  css  js  c++  java
  • 记录写项目过程中一些不知道的方法。

    1、- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:

    (NSInteger)topCapHeight 这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是左边不拉伸区域的宽度,第二个参数是上面不拉伸的高度。

    根据设置的宽度和高度,将接下来的一个像素进行左右扩展和上下拉伸。

    注意:可拉伸的范围都是距离leftCapWidth后的1竖排像素,和距离topCapHeight后的1横排像素。

    参数的意义是,如果参数指定10,5。那么,图片左边10个像素,上边5个像素。不会被拉伸,x坐标为11和一个像素会被横向复制,y坐标为6的一个像素会被纵向复制。

    注意:只是对一个像素进行复制到一定宽度。而图像后面的剩余像素也不会被拉伸。

    UIImage *img=[UIImage imageNamed:@"bubbleSelf.png"];
        img=[img stretchableImageWithLeftCapWidth:15 topCapHeight:12];
        UIImageView *imgView=[[UIImageView alloc]initWithImage:img];
        [imgView setFrame:CGRectMake(10, 10, 200, 200)];
        [self. view addSubview:imgView];

     2、和我遇到的问题一样,直接复制的网上的。

    不小心在开发过程中,得到了(null)以及<null>的返回值,找了好长时间只找到了一个关于<null>的。

    由于要根据返回值进行判断,做出必要反应,因此必须知道返回值所代表的具体字符,在得到(null)后利用isEqual:和@“”,NULL,@“(null)”,nil,Nil比较后均得不到正确结果,弄得不知所措了,但是还是感觉像nil,不得已,创建一个字符串,赋值为nil,打印输出,果然是(null),想不通的是为什么不等。最后试了一下“==”,成功了。费尽周折之后才明白原来要这样用:

    if(m_result==nil)

    {

    NSLog(@"KDA!");

    }

    还有就是<null>,从网上找到了用法:

    if([m_result isEqual:[NSNUll null]])

    {

    NSLog(@"KDA!");

    }问题很简单,找不到原因解决就难了,不由感叹,基础最关键啊。

    3、今天在自定义一个cell的时候,自定义cell上有一个按钮,写完之后,发现运行出来的界面上没有这个按钮,后来试了几次,发来可能是因为使用了懒加载的原因,于是试了一下,果然是这样。问了旁边的大神才知道,cell是一个View,他自己没有被用到的时候,他自己就不存在,所以要用懒加载的话只能写在控制器里面。

    4、打包的时候,product->archive是灰色的,如果scheme->edit scheme改成release后还是灰色的,可能是选择的是模拟器,改成generic ios device 就可以了。

    5、对字典中的key进行排序

    NSArray *keys = [_paramsDic allKeys];
        //按key排序
        NSArray *sortedArray = [keys sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
            NSComparisonResult result = [obj1 compare:obj2];
            return result == NSOrderedDescending; //升序
        }];
        NSMutableArray *arr = [NSMutableArray array];
        for (NSString *key in sortedArray) {
            id value = [_paramsDic objectForKey:key];
            NSString *appendStr = [NSString stringWithFormat:@""%@":"%@"",key,value];
            [arr addObject:appendStr];
        }
        //用","拼接数组内的字符串
        NSString *arrStr = [arr componentsJoinedByString:@","];
        NSString *paramsString = [NSString stringWithFormat:@"%@%@%@",@"{",arrStr,@"}"];
    

     6、服务器要求传递的参数为json类型的字符串

     1   NSString *urlStr = @"http://music.163.com/#/song?id=5086081";
     2     AFHTTPSessionManager *manager=[AFHTTPSessionManager manager];
     3     //发送json格式的请求参数-->虽然下面我们看似传的是一个字典,但是写了下面这句代码后,就会自动把字典参数转换为json格式的字符串类型的参数传给服务器
     4     manager.requestSerializer=[AFJSONRequestSerializer serializer];
     5     //返回json格式的字符串
     6     manager.responseSerializer=[AFJSONResponseSerializer serializer];
     7     NSMutableDictionary *dic = [NSMutableDictionary dictionary];
     8     dic[@"id"] = @"5086081";
     9     [manager POST:urlStr parameters:dic success:^(NSURLSessionDataTask *task, id responseObject) {
    10         NSLog(@"请求成功");
    11     } failure:^(NSURLSessionDataTask *task, NSError *error) {
    12         NSLog(@"请求失败");
    13     }];

     7、获取图片的大小:

    CGSize size= [UIImage imageNamed:@"jjsx"].size;
    //path 图片的本地路径
    CGSize size=[UIImage imageWithContentsOfFile:path].size;

    8、定位服务

    // 判断的手机的定位功能是否开启
        // 开启定位:设置 > 隐私 > 位置 > 定位服务
        if ([CLLocationManager locationServicesEnabled]) {
            // 启动位置更新
            // 开启位置更新需要与服务器进行轮询所以会比较耗电,在不需要时用stopUpdatingLocation方法关闭;
            [self.locationManager startUpdatingLocation];
        }
    // 判断的App的定位功能是否开启
    CLAuthorizationStatus status = [CLLocationManager authorizationStatus]; if (kCLAuthorizationStatusDenied == status || kCLAuthorizationStatusRestricted == status) {
    NSLog(@"请前往设置开启app的定位功能");
    }
    询问是否开启定位功能       
    //1.需获取地理位置权限 //添加实例 _locationManeger = [[CLLocationManager alloc] init]; [_locationManeger startUpdatingLocation]; //询问用户,获得权限。会有一个弹窗,询问用户是否允许app获取当前地理位置 if (iOS8) { //使用应用程序期间允许访问位置数据 [locationManager requestWhenInUseAuthorization]; //始终允许访问位置信息 // [locationManager requestAlwaysAuthorization];
            }

    具体定位步骤请参考:http://blog.devzeng.com/blog/ios8-corelocation-framework.html

  • 相关阅读:
    MVP福利利用Azure虚拟机玩Windows Server 2012
    负载均衡的基本算法
    RavenDB:基于Windows/.NET平台的NoSQL数据库
    使用Autofac在ASP.NET Web API上实现依赖注入
    Mono 3 的默认Gc是Sgen
    MSDN 杂志 Windows 8 特刊
    AggSharp Agg的.NET 移植
    使用谷歌翻译/微软翻译迅速使你的博客支持多国语言
    Service Bus for Windows server
    用Xwt构建跨平台应用程序[转载]
  • 原文地址:https://www.cnblogs.com/zpt1011/p/5318345.html
Copyright © 2011-2022 走看看