我设置了基础sdk 4.1和ios部署目标= ios4.1。 contentScaleFactor在iOS 4.0及更高版本中可用。
if ( [imageView respondsToSelector: @selector (contentScaleFactor:)] == YES )
{
imageView.contentScaleFactor = 1.0;
}
为什么我总是没有?
答案 0 :(得分:5)
它不响应contentScaleFactor:
,因为contentScaleFactor
是一个属性,具有以下访问者:
- (CGFloat)contentScaleFactor
- (void)setContentScaleFactor:(CGFloat)
没有其他名称为contentScaleFactor
的方法接受单个参数(由:
标记)。
因此,可用的选择器是contentScaleFactor
和setContentScaleFactor:
。您可能正在寻找setContentScaleFactor:
,这就是调用setter的原因。
将您的代码更改为:
if ( [imageView respondsToSelector:@selector(setContentScaleFactor:)] == YES )
{
// Or as bbum says, use [imageView setContentScaleFactor:1.0];
imageView.contentScaleFactor = 1.0;
}
答案 1 :(得分:2)
因为选择器contentScaleFactor:
与选择器contentScaleFactor
不同,并且都不对应于属性设置器的选择器,即setContentScaleFactor:
。你只需要这样做:
if ([imageView respondsToSelector: @selector(contentScaleFactor)])
{
imageView.contentScaleFactor = 1.0;
}
注意:
已从选择器声明中消失。另请注意,将比例因子设置为1.0
将无法利用Retina显示屏。