Swift开发之实用的Category看了不后悔

一:查找UIView及其子类的根父视图控制器

extension UIView{

func zyViewController() -> UIViewController? {
    var next = self.next;
   
    while next != nil {
        if next is UIViewController {
            return next as? UIViewController;
        }
        next = next?.next;
    }
    
    
    return nil;
}

}

在Swift中do {}while循环,在Swift的测试中,改为repeat{}while

二:计算字符串所占的空间大小即Size

extension NSString{
//返回字符串所占用的尺寸. 字体大小   最大值可以设置无限大

func sizeWithFontMaxSize(font:UIFont,maxSize:CGSize) -> CGSize{
    let attrs = [NSFontAttributeName : font] as NSDictionary;
    
    
    return self.boundingRectWithSize(maxSize, options: NSStringDrawingOptions.UsesLineFragmentOrigin, attributes: attrs as? [String : AnyObject], context: nil).size;
}


}

这里第一个参数UIFont是字体大小,maxSi是其宽高的最大值,设置了之后,在计算字符串大小的时候,最大宽度或高度,不会超过你所设置的maxSize中的宽高。

你可能感兴趣的:(Swift开发之实用的Category看了不后悔)