我开始使用Rory Lewis的iPhone和iPad绝对初学者应用程序一书学习Objective-C,但在第5章卡住了。
我想制作一个缩小图像的按钮。
我的问题是,在编写所有代码后,图像会缩小到UIImageView(左上角)的点(0,0),而在视频中,图像会缩小到其中心。我进行了一些研究,并发现CGAffineTransform
使用对象的中心来进行平移、旋转等操作。
那么为什么在我的情况下不起作用呢?
我使用的是最新的Xcode版本,并没有做任何奇怪的事情。 希望我表达清楚了。抱歉我的英语不好。
编辑 抱歉代码有误,因为我是用手机写的问题。 无论如何,涉及到的部分大致如下:
- (IBAction)shrink:(id)sender {
if(hasShrink == NO){
[shrinkButton setTitle:@"Grow" forState:UIControlStateNormal];
}
else if(hasShrink == YES){
[shrinkButton setTitle:@"Shrink" forState:UIControlStateNormal];
}
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
myIcon.transform = CGAffineTransformMakeScale(.25, .25);
hasShrink = YES;
[UIView commitAnimations];
}
所有的动画都已经正确编写,应用程序确实可以工作,只是它缩小到左上角。为什么点不像应该那样默认设置在UIImageView的中心呢?编辑: 我发现这是由AutoLayout引起的问题。 一旦禁用,一切都很顺利 ;)