在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