在iPhone:應用CGAffineTransformMakeRotation的UILabel造成神祕墜毀
-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil parentController:(GameViewController *)myGameController{
有一系列的轉化標籤,像這樣:
deg90 = 1.570796326794897;
//....transforms
background.center = CGPointMake(160,230);
background.transform = CGAffineTransformMakeRotation(deg90);
BetLabel.text = @"test";
BetLabel.transform = CGAffineTransformMakeRotation(deg90);
最後一行崩潰我:
2010-04-13 21:04:47.858 Game[1204:207] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSCFArray objectAtIndex:]: index (1) beyond bounds (1)'
2010-04-13 21:04:47.893 Game[1204:207] Stack: (
864992541,
859229716, (lots of numbers)
但是,如果我將它評論出來,我會發現文本正在改變。
更新:呃哦,只是做了一個測試..原來其他轉換是在UIImageViews。顯然,在這個xib中旋轉標籤會導致崩潰。
但在另一個文件中的變換都做工精細:
newprofileentry.transform = CGAffineTransformMakeRotation(1.570796326794897);
playerb0.transform = CGAffineTransformMakeRotation(1.570796326794897);
playerb1.transform = CGAffineTransformMakeRotation(1.570796326794897);
試圖與全浮點值,還是一樣崩潰代deg90
。
嘗試清理緩存,重新啓動IB和Xcode,清理所有目標。程序一直運行良好,直到我剛剛添加這些標籤。試圖刪除標籤,讀取和重新連接Outlet。
感謝您的閱讀,希望有人對此有所瞭解。
乾杯!
您的錯誤消息意味着錯誤是在數組的管理 - 有一個數組與一個元素,並試圖使用第二個元素(與索引1)。 這就是爲什麼我認爲你在錯誤的地方搜索錯誤。也許,你的代碼中有一些數組? – kpower 2010-04-14 03:03:42
感謝您的回覆。我做。我也一直在將標籤添加到視圖中作爲子視圖 - 但爲什麼.transform會影響到這一點?除子視圖外,標籤不在任何數組中。嘗試在我初始化數組之前放入這些代碼,仍然崩潰。沒有任何數組只有0或1的大小..似乎是與UILabel本身的問題! – quantumpotato 2010-04-14 03:56:07
你有沒有嘗試過讓@「Test」成爲[NSString stringWithString:@「Test」]?可能會有一些奇怪的事情發生,靜態字符串正在對標籤/ Transform進行一些無效初始化。通過創建一個新的字符串(在爲@「Test」完成的奇怪初始化之外),這可能會在UIView處理轉換的方式上有所不同。我知道。有點出來,但很容易嘗試。 – 2010-04-14 04:37:54