美文网首页IOSbugiOS开发iOS 开发进阶
ios开发小技巧总结(一)

ios开发小技巧总结(一)

作者: 司马捷 | 来源:发表于2015-07-01 14:52 被阅读282次

    1.设置标签的文字显示不同颜色。

    NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"测试的数据"];
    
    [str addAttribute:NSForegroundColorAttributeName value:BGColor range:NSMakeRange(5,5)];
    _noteTextField.attributedText = str;
    

    2.定时器的取消,关闭,重启
    (1).设置定时器。

     _timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(refreshTime) userInfo:nil repeats:YES];
    

    (2).定时器关闭
    <pre><code> [_timer setFireDate:[NSDate distantFuture]];//关闭定时器
    </code></pre>
    (3),定时器重启

    [_timer setFireDate:[NSDate distantPast]];
    

    (4).定时器取消
    <pre><code>
    [_timer invalidate];
    _timer = nil;
    </code></pre>

    3.在UItabbarViewController作为根视图情况下,在子视图中获取UITabbarViewController.
    <pre><code>
    MainTabBarViewController *manTabar= (MainTabBarViewController *)[UIApplication
    sharedApplication].keyWindow.rootViewController;
    </code></pre>

    4.在字符串中添加换行,添加 \n

    NSString *message = [NSString stringWithFormat:@"Auto connect upon\n%@(%@)'s request",settings.connectionInfo.displayName,settings.connectionInfo.hostName];
    
    1. 在非ARC的项目中使用ARC文件,对ARC的文件添加 -fobjc-arc 标签
      在ARC的项目中使用非ARC文件,对非ARC文件添加 -fno-objc-arc 标签

    6
    - (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait modes:(NSArray *)array;
    - (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait;


    参考:
    本方法使用Common模式将消息加入到主线程运行循环(run loop)队列, 即 与NSRunLoopCommonModes常数相关的模式。作为其正常运行循环处理的一部分,主线程从队列中取出消息(假设它是在Common模式中运行)并调用所需的方法。在同一个线程多次调用此方法会导致相应的选择进行排队,再按相同的顺序取出执行。

    在主线程中调用. BOOL值,表示是否阻塞当前线程.NO表示立刻返回,按照默认的Common模式 加入队列中等待调用.
    如果当前线程也是主线程,选择YES,消息会立即派发,处理。在主线程的Loop中 同步操作,等待改方法完成再执行下一个消息.
    参考:http://www.jianshu.com/p/083726e68c2b

    7 . IOS拍照控件同时显示拍照与录像

    <pre><code>- (void) recordVideo: (id) sender{
    UIImagePickerController *ipc = [[UIImagePickerController alloc] init];
    ipc.sourceType = UIImagePickerControllerSourceTypeCamera;
    ipc.delegate = self;
    ipc.allowsEditing = YES;
    ipc.videoQuality = UIImagePickerControllerQualityTypeMedium;
    ipc.videoMaximumDuration = 30.0f; // 30 seconds
    ///ipc.mediaTypes = [NSArray arrayWithObject:@"public.movie"];
    //主要是下边的两能数,@"public.movie", @"public.image" 一个是录像,一个是拍照
    ipc.mediaTypes = [NSArray arrayWithObjects:@"public.movie", @"public.image", nil];
    [self presentModalViewController:ipc animated:YES];
    } </code></pre>

    8.objective-c下如果某属性的getter,setter都要重写的话
    需要加上

    @synthesize propertyName = _propertyName;
    

    9.NSURLRquest 缓存策略

    1.   NSURLRequestUseProtocolCachePolicy = 0, 
    

    默认的缓存策略, 如果缓存不存在,直接从服务端获取。如果缓存存在,会根据response中的Cache-Control字段判断下一步操作,如: Cache-Control字段为must-revalidata, 则询问服务端该数据是否有更新,无更新的话直接返回给用户缓存数据,若已更新,则请求服务端.

    2. NSURLRequestReloadIgnoringLocalCacheData = 1,
    

    忽略本地缓存数据,直接请求服务端.

    3.NSURLRequestIgnoringLocalAndRemoteCacheData = 4, 
    

    忽略本地缓存,代理服务器以及其他中介,直接请求源服务端.

     4.NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData
    

    两个一致

    5.NSURLRequestReturnCacheDataElseLoad= 2, 
    

    有缓存就使用,不管其有效性(即忽略Cache-Control字段), 无则请求服务端.

    6. NSURLRequestReturnCacheDataDontLoad =3, 
    

    死活加载本地缓存. 没有就失败.(确定当前无网络时使用)

    7.NSURLRequestReloadRevalidatingCacheData =5,
    

    缓存数据必须得得到服务端确认有效才使用(貌似是NSURLRequestUseProtocolCachePolicy中的一种情况)

    10.**删除隐藏的.svn文件,命令行运行 **
    第一条命令:
    defaults write com.apple.finder AppleShowAllFiles TRUE;
    第二条命令
    killall Finder;
    ko,隐藏的.svn文件夹就原形毕露了.
    开启显示隐藏文件,然后到工程目录下删除.svn文件,然后再恢复
    defaults write com.apple.finder AppleShowAllFiles FALSE;
    killall Finder;

    11.设置UITextField 的缩进效果.

       UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 5, 5)];
    _phoneTextField.leftView = view;
    _phoneTextField.leftViewMode = UITextFieldViewModeAlways;
    

    12.快速设置阴影的方法
    _shadeView.layer.shadowOpacity = 0.8;

    需要了解:
    1.shadowOpacity 默认值是0 shadowColor默认值是Black
    shadowOffset的默认值是 {0, -3},意即阴影相对于Y轴有3个点的向上位移。
    shadowRadius属性控制着阴影的模糊度 ,也可以理解为阴影的半径,值越大,阴影的范围和模糊度越深.

    2.深度学习,永阴影图片做动画的时候,应选择另一种方法CGPath
    http://blog.csdn.net/dean19900504/article/details/9233879

    相关文章

      网友评论

        本文标题:ios开发小技巧总结(一)

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