美文网首页
iOS开发的一些小技巧

iOS开发的一些小技巧

作者: 诗酒丶趁年华 | 来源:发表于2016-10-20 10:52 被阅读0次
    1.查看一段代码的运行时间
    #define STARTTIME NSDate *startTime = [NSDate date];
    #define ENDTIME NSLog(@"Time: %f", -[startTime timeIntervalSinceNow]);
    

    使用方法:

    STARTTIME
    do your work here
    ENDTIME
    
    2.在使用view的缩放的时候,layer.border.width随着view的放大,会出现锯齿化的问题,解决这个问题需要设置这个属性。
    self.layer.allowsEdgeAntialiasing = YES;
    
    3.一幅图完美解释UIImageView的UIContentMode
    1354011953_1051.png
    4.获取当前最顶层的ViewController

    通过最底层的ViewController依次向上寻找,直到找到最顶层的ViewController,也就是从UIApplication的keyWindow的rootViewController开始寻找(如果有多个UIWindow则要考虑UIWindow的选择问题。

    在寻找的过程中,要分别考虑当前ViewController是UITabBarController和UINavigationController的情况,同时还要考虑到当前ViewController是否通过presentViewController:animated:completion:模态展示了其他ViewController。
    实现代码:

    - (UIViewController *)topViewController {
        UIViewController *resultVC;
        resultVC = [self _topViewController:[[UIApplication sharedApplication].keyWindow rootViewController]];
        while (resultVC.presentedViewController) {
            resultVC = [self _topViewController:resultVC.presentedViewController];
        }
        return resultVC;
    }
    
    - (UIViewController *)_topViewController:(UIViewController *)vc {
        if ([vc isKindOfClass:[UINavigationController class]]) {
            return [self _topViewController:[(UINavigationController *)vc topViewController]];
        } else if ([vc isKindOfClass:[UITabBarController class]]) {
            return [self _topViewController:[(UITabBarController *)vc selectedViewController]];
        } else {
            return vc;
        }
        return nil;
    }
    

    使用方法:

    UIViewController *topmostVC = [self topViewController];
    
    5.

    相关文章

      网友评论

          本文标题:iOS开发的一些小技巧

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