您的位置:首页 > 移动开发 > IOS开发

iOS解决低版本兼容的方法

2011-12-20 17:29 513 查看
Objective-C2.0提供了Category机制能够对现有的Objective-C类进行扩充。我们可以通过Category机制来解决已有的Cocoa Framework中的类的某些方法版本过高的问题。

比如在UIWebView中,系统会根据HTML中的属性将内容显示到Web View中。这时候,当它遇到Retina Display的标志时,UIWebView会内部自动调用UIView的setContentScaleFactor方法来设置分辨率缩放因子。而这个方法是iOS4.0以上才有,如果是iOS3.2的系统直接就会导致应用崩溃。

我们可以通过以下方法解决,添加:

@interface UIWebView(NotExpected)

- (void)setContentScaleFactor:(CGFloat)factor;

@end

@implementation UIWebView(NotExpected)

- (void)setContentScaleFactor:(CGFloat)factor
{
if(![[UIView class] respondsToSelector:@selector(animateWithDuration:animations:)])
return;
else
[super setContentScaleFactor:factor];
}

@end


其中,通过UIView中的animateWithDuration:animations:方法来检测是否为iOS4.0或以上系统。而如果不是4.0则直接返回。如果是4.0或更高版本,那么直接调用UIWebView父类,即UIView的setContentScaleFactor方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: