Swift开发之实用的Category看了不后悔
2016-07-28 本文已影响948人
贝尔特伦
一:查找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中的宽高。