尝试放大/缩小imageView。
我已经成功地做到了这一点,所以现在我正在尝试将一些按钮放在视图上,当按下按钮时,可以在该区域进行缩放。
我该如何实现它呢?
到目前为止,以下是我的代码
-(void)zoomHere:(UIButton *)sender{
NSLog(@"zoom in");
//[self performSelector:@selector()
// withObject:nil
// afterDelay:1.6f];
CGAffineTransform transformer = CGAffineTransformScale(imageView.transform, 1.05, 1.05);
if (transformer.a < 5) {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration: 0.2];
imageView.transform = transformer;
[UIView setAnimationDelegate:self];
[UIView commitAnimations];
}
}视图确实加载了
- (void)viewDidLoad
{
[super viewDidLoad];
UIView *buttonView = [[UIView alloc]initWithFrame:CGRectMake(00.0, 20.0, 768, 1004.0)];
zoomHere = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[zoomHere addTarget:self
action:@selector(zoomHere:)
forControlEvents:UIControlEventTouchDown];
[zoomHere setTitle:@"ZoomIN" forState:UIControlStateNormal];
zoomHere.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
[buttonView addSubview:zoomHere];
buttonView.multipleTouchEnabled = YES;
[self.view addSubview:buttonView];
}它仍然会放大,但不会在屏幕上按钮所在区域!
发布于 2012-10-17 00:24:17
如果要使用缩放变换,则可能还应使用平移变换
如下所示:
CGAffineTransform scale = CGAffineTransformMakeScale(1.05, 1.05);
CGAffineTransform translate = CGAffineTransformMakeTranslation(10, 20);
CGAffineTransform delta = CGAffineTransformConcat(scale, translate);
imageView.transform = CGAffineTransformConcat(imageView.transform, delta);这就是你如何知道按钮在你的图像视图中的位置:
[imageView convertPoint:button.center fromView:self.view]因此,如果您知道按钮的坐标和当前比例,则可以计算新的平移变换
但对我来说,我更喜欢使用滚动视图来放大和缩小图像视图。你可以有漂亮的弹跳动画和缩放动画,你也可以有平移和收缩,但当然这是由你决定的。
https://stackoverflow.com/questions/12918945
复制相似问题