2011-01-13 34 views

回答

5

它不給contentScaleFactor:響應,因爲contentScaleFactor是一個屬性,具有以下訪問器:

- (CGFloat)contentScaleFactor 
- (void)setContentScaleFactor:(CGFloat) 

沒有其他方法與接受單個參數(由:標記)名稱contentScaleFactor

因此,可用的選擇器是contentScaleFactorsetContentScaleFactor:。您可能正在尋找setContentScaleFactor:,這就是調用者所稱的。

你的代碼改成這樣:

if ([imageView respondsToSelector:@selector(setContentScaleFactor:)] == YES) 
{ 
    // Or as bbum says, use [imageView setContentScaleFactor:1.0]; 
    imageView.contentScaleFactor = 1.0; 
} 
+1

確切地說;我建議使用`[imageView setContentScaleFactor:1.0]'來代替點語法,以便在`respondsToSelector:`測試的上下文中清晰。 – bbum 2011-01-13 17:36:25

+0

我在3.2 sdk中發出警告。 [imageView setContentScaleFactor:1.0];警告:'UIView'可能不會響應'-setContentScaleFactor:' 我該如何解決這個問題? – Voloda2 2011-01-13 17:51:04

2

因爲選擇contentScaleFactor:是從選擇contentScaleFactor不同,既不對應屬性的setter的選擇,這是setContentScaleFactor:。您只需要這樣做:

if ([imageView respondsToSelector: @selector(contentScaleFactor)]) 
{ 
    imageView.contentScaleFactor = 1.0; 
} 

注意:已從選擇器聲明中消失。此外,請注意,將比例因子設置爲1.0不會利用視網膜顯示。

相關問題