iOS 小知识点(持续更新)_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > iOS 小知识点(持续更新)

iOS 小知识点(持续更新)

 2016/6/11 5:30:27  鸿鹄当高远  程序员俱乐部  我要评论(0)
  • 摘要:1、如何通过代码设置Buttontitle的字体大小设置Button.titleLabel.font=[UIFontsystemFontOfSize:<#(CGFloat)#>];2、获取当前时间NSDate*timeDate=[NSDatedate];NSDateFormatter*dateformatter=[[NSDateFormatteralloc]init];[dateformattersetDateFormat:@"YYYYMMddHHmmsssss"]
  • 标签:iOS

 

1、如何通过代码设置Button  title的字体大小

设置Button.titleLabel.font = [UIFont systemFontOfSize:<#(CGFloat)#>] ;

 

2、获取当前时间

    NSDate *timeDate=[NSDate date];
    
    NSDateFormatter * dateformatter=[[NSDateFormatter alloc] init];
    
    [dateformatter setDateFormat:@"YYYYMMddHHmmsssss"];
    
    NSString *locationString=[dateformatter stringFromDate:timeDate];

 

3、判断字符串是否为空字符的方法

- (BOOL) isBlankString:(NSString *)string {
    if (string == nil || string == NULL) {
        return YES;
    }
    if ([string isKindOfClass:[NSNull class]]) {
        return YES;
    }
    if ([[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length]==0) {
        return YES;
    }
    return NO;
}

 

4、tableView优化

    //刷新整个表格
    [_tableView reloadData];
    
    //刷新当前行
    [_tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];

 

5、百度地图自定义大头针图片

- (BMKAnnotationView *)mapView:(BMKMapView *)view viewForAnnotation:(id <BMKAnnotation>)annotation
{
    // 生成重用标示identifier
    static NSString *AnnotationViewID = @"AnnotationViewID";
    
    // 检查是否有重用的缓存
    BMKAnnotationView* annotationView = [view dequeueReusableAnnotationViewWithIdentifier:AnnotationViewID];
    ((BMKPinAnnotationView*)annotationView).pinColor = BMKPinAnnotationColorGreen;
    annotationView.image = [UIImage imageNamed:@"XXX.png"];
}

 

6、iOS APP上架所需要的 屏幕尺寸

  640*960、640*1136、750*1334、1242*2208

 

7、iOS APP 图标的尺寸

  58*58、80*80、120*120、180*180

 

8、

苹果公司账号申请: 这个是申请方法:http://jingyan.baidu.com/article/0320e2c1d153161b87507bba.html 这个是官网:https://developer.apple.com/enroll/organization/

 

9、关闭定时器

[_myTimer invalidate];

 _myTimer = nil;

 

10、键盘释放第一响应

 - (BOOL)textFieldShouldReturn:(UITextField *)textField {

 [textField resignFirstResponder];

 return YES;

}

 

11、点击UITableViewCell时,没有点击效果,

在cellForRowAtIndexPath:方法中写上

cell.selectionStyle = UITableViewCellSelectionStyleNone;

 

12、使用NSJSONSerialization 返回的对象,取决于最外层是什么,如果是{}那就是字典,[]那就是数组等

 

13、只支持竖屏,修改info.plist 文件就可以了。找到"Supported interface orientations" 设置item 项为Portrait就可以了。这个设置为全局设置。

 

14、iOS开发

先搭框架,后画界面,写功能,写接口,调试,写适配

iOS 开发文档 流程图 UI 框架 接口 功能 适配 测试 更改
iOS 初级开发工程师 C语言基础+swift语言基础
      中级iOS开发工程师 iOS项目开发+UI部分+动画图层部分

 

15、ViewController的生命周期中各方法执行流程如下:

init—>loadView—>viewDidLoad—>viewWillApper—>viewDidApper—>viewWillDisapper—>viewDidDisapper—>viewWillUnload->viewDidUnload—>dealloc

 

16、GCD

1)运行在主线程的Main queue,通过dispatch_get_main_queue获取。
2)并行队列global dispatch queue,通过dispatch_get_global_queue获取,由系统创建三个不同优先级的dispatch queue。并行队列的执行顺序与其加入队列的顺序相同。
3)串行队列serial queues一般用于按顺序同步访问,可创建任意数量的串行队列,各个串行队列之间是并发的。

17、Xcode项目中我们经常遇到因为空数据(服务器传回来的数据通过JsonKit解析为之类的)导致内存泄漏进而程序崩溃的现象,这个在之前学校的时候就被坑了很多次,所以有必要封装一个非空处理的类,由于能力有限,查看一些网上的资料,想到采用递归的方式处理。

解决办法:一个老外早已在Githud有了空处理的神器:https://github.com/nicklockwood/NullSafe,只要将这个类别(Category)加入项目中就可万事无忧,由于里面代码我也不太懂,所以大家自己研究下哈。

 

18、读取plist文件

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"provinces.plist" ofType:nil];

NSArray *arr = [NSArray arrayWithContentsOfFile:filePath];

 // 加载plist数据
    
//     一个NSBundle对象对应一个资源包(图片、音频、视频、plis等文件)
//     NSBundle的作用:用来访问与之对应的资源包内部的文件,可以用来获得文件的全路径
//     项目中添加的资源都会被添加到主资源包中
//     [NSBundle mainBundle]关联的就是项目的主资源包

    NSBundle *bundle = [NSBundle mainBundle];
    
    // 利用mainBundle获得plist文件在主资源包中的全路径
    NSString *file = [bundle pathForResource:@"shops" ofType:@"plist"];
//    NSString *file = [bundle pathForResource:@"shops.plist" ofType:nil];
    // 凡是参数名为File,传递的都是文件的全路径
    shopsArray = [NSArray arrayWithContentsOfFile:file];

 19、懒加载:用到时再去加载,而且也只加载一次

      (1).懒加载基本

       懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小)。所谓懒加载,写的是其get方法.

       注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化

      (2).使用懒加载的好处:

       好处一:不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强

       好处二:每个控件的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合

发表评论
用户名: 匿名