顯示具有 Objective-C 標籤的文章。 顯示所有文章
顯示具有 Objective-C 標籤的文章。 顯示所有文章

2014-11-14

Xcode 6 在模擬器 iPhone 5 + iOS 7 的版面上下黑邊

如果您在 Xcode 6 發現了模擬器以 iPhone 5 執行 iOS 7 時,是以 320x480 的版面而非 320x568 時,應該如何排解?
Xcode 6 執行選擇 iPhone 5/5s + iOS 7.1

iPhone 5 + iOS 7 不應該上下有黑邊
照理說,iPhone 5 應該是 4 吋 Retina 的解析度 320x568 不應該成為 320x480 而讓畫面留下上下的黑邊。

原因是這樣:

原來是在 4 吋 Retina 的設備,少了 Default-568h@2x.png 的啟始畫面。

註:在 iOS 7.1 以前需要的啟始畫面檔案
  • Default.png - 320 x 480 pixels (standard resolution iPhone)
  • Default@2x.png - 640 x 960 pixels (high resolution iPhone 4)
  • Default-568h@2x.png - 640 x 1136 pixels (iPhone 5)



所以,如果您的 App 專案有這樣的設定時:

解決的方式,除了可以加入一個 640 x 1136 的 Default-568h@2x.png 檔案之外,可以在 Project 的 TARGETS 設定內,從 General 頁面內的 App Icons and Launch Images 將 Launch Images Source,按下「Use Asset Catalog」


您再執行看看,結果就不會在 iPhone 5/5s + iOS 7.1 的畫面上下出現黑邊了。

.

2014-07-09

Mac App 的 NSTextField Number Formatter - 處理小數點位數

前陣子為了解決 MacBook 畫面頂端功能表,因為程式的不同而有項目多寡,導致常駐程式被隱藏起來,像這樣:
Finder,有些常駐程式看不到


Xcode,常駐程式看到更少



於是做了一個 Mac App 叫做 M。
常駐程式全部都出來了吧

畫面很簡單:只有留一個 M 的程式名
後來加了「度分秒」與「度數」轉換,在查閱 Google 地圖時可以換算。
但是習慣小數點後面 4 位數,於是就找了一下:



按照這 4 個步驟,Xcode 夠可愛吧,簡單!

於是,小數點位數也正確了。


如果你有需要的朋友,可以免費下載使用

.

2013-09-11

簡碼到用時方恨少

需要時可以查閱。


在這裡,看到了吧!


編輯器輸入點移到關鍵字後面,按下 ESC 按鍵,就可以看到。

.



2013-06-05

UIColor 存放到 NSDictionary/NSMutableDictionary 內

之前有篇提到「UIImage 存放到 NSArray/NSMutableArray 內」讀過之後,是不是了解到 imageNamed:imagePath 並不是直接將 imagePath 路徑內的圖片載入 Array 內了?

這次來看看 UIColor。

如果你這樣用:

NSDictionary *dict0 = [[NSDictionary allocinitWithObjectsAndKeys:
                           @"紅色"@"CColor",
                           [UIColor redColor], @"EColor",
                           @"YES"@"Fill",
                           nil];

Xcode 會跟你這樣說:
-[UICachedDeviceRGBColor bytes]: unrecognized selector sent to instance 0xa9671e0
ColorInDictionary[7955:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UICachedDeviceRGBColor bytes]: unrecognized selector sent to instance 0xa9671e0'
原因是 NSDictionary 內容不允許你直接存入 [UIColor redColor] 的關係。


於是你要將 [UIColor redColor] 包裝起來,改用 [NSKeyedArchiver archivedDataWithRootObject:[UIColor redColor]]

像這樣:

NSDictionary *dict0 = [[NSDictionary allocinitWithObjectsAndKeys:
                           @"紅色"@"CColor",
                           [NSKeyedArchiver archivedDataWithRootObject:[UIColor redColor]], @"EColor",
                           @"YES"@"Fill",
                           nil];

取用時再拆開,還原成 UIColor 即可

UIColor *colorNow = [NSKeyedUnarchiver unarchiveObjectWithData:[dict0 objectForKey:@"EColor"]];


.