为什么[imageView respondsToSelector:@selector(contentScaleFactor :)]总是等于NO?

Vol*_*da2 1 iphone objective-c uiview uiimageview

我设置了基础sdk 4.1和ios部署目标= ios4.1.contentScaleFactor在iOS 4.0及更高版本中可用.

if ( [imageView respondsToSelector: @selector (contentScaleFactor:)] == YES )
{
    imageView.contentScaleFactor = 1.0;
}
Run Code Online (Sandbox Code Playgroud)

为什么我总是没有?

Bol*_*ock 5

它没有响应contentScaleFactor:因为contentScaleFactor是一个属性,具有以下访问器:

- (CGFloat)contentScaleFactor
- (void)setContentScaleFactor:(CGFloat)
Run Code Online (Sandbox Code Playgroud)

名称contentScaleFactor中没有其他方法接受单个参数(由标记:).

因此,可用的选择器是contentScaleFactorsetContentScaleFactor:.你可能正在寻找setContentScaleFactor:,这就是setter被调用的东西.

将您的代码更改为:

if ( [imageView respondsToSelector:@selector(setContentScaleFactor:)] == YES )
{
    // Or as bbum says, use [imageView setContentScaleFactor:1.0];
    imageView.contentScaleFactor = 1.0;
}
Run Code Online (Sandbox Code Playgroud)