2013-06-05 33 views
1

這是一個簡單的問題,我找不到任何東西,但是有沒有辦法爲xib文件命名,以便ios知道取決於版本取決於另一個xib文件。 如果你想利用廈門國際銀行文件的一類命名的廈門國際銀行文件一樣的類 例如:如果要指定iPhone或iPad應用波浪線iphone ViewController.m ViewController.xibxibs 3.5inch和4inch的命名約定

/iPad的 EX: 的ViewController〜iphone.xib 的ViewController〜ipad.xib

因此重申這個問題,是否有適用於iOS 5.x和IOS 6.X差或命名約定沒有?

我問這個,因爲ios 6.0有一些關於NSLayOutConstraints和我想使用但不被一個構建支持的歸因標籤的很好的特性。我最終禁用了自動佈局,並沒有使用歸屬標籤,只是我可以有1個代碼庫,時間是因素。

就算我知道我可以做

if (mainWindow.frame.size.height == 568) { 
    [[UIViewController alloc] [email protected]"xibname"]; 
} 

,我知道我可以做一個類來採取一個NSString,並創建依賴於與屏幕尺寸的廈門國際銀行文件正確的琴絃,但如果我能脫穎而出去這些方法和使用內置的東西會更好。

+0

你應該讓你的筆尖隨着屏幕的大小增長,你不需要爲不同的筆尖。你可以['autoresizingMask'](http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/doc/uid/TP40006816-CH3-SW6 )的'UIView'爲此,所以不需要僅iOS6 Autolayout。 – rckoenes

+0

什麼是NSAttributedStrings在ios 6.0中支持,而不是ios 5.X err,也就是說不是很容易實現......因爲我的所有問題都是我需要的文本而不是大膽的,第三方框架變色因爲我使用了一些複雜的代碼來獲取文本的大小並根據該大小調整區域的大小......但是我得到了一些不想要的偏移集......並且簡單地說所有這些會自動修復ios 6.0 XD –

回答

1
+ (NSString *)getNibNameForName:(NSString *)name { 
    if (IsiPhone4Inch) { 
     NSString *possibleNibName = [NSString stringWithFormat:@"%@_iPhone4Inch", name]; 
     if ([[NSBundle mainBundle] pathForResource:possibleNibName ofType:@"nib"] != nil) { 
      return possibleNibName; 
     } 
    } 

    return [NSString stringWithFormat:IS_IPAD ? @"%@_iPad":@"%@", name]; 
} 
+0

,因爲ios不會自動拍攝正確的筆尖文件...您可以使用任何擴展名並使用上面顯示的類似方法加載筆尖 –