如何在点击时放大UIImageView
问题描述:
我对编程非常陌生,所以我在尝试执行此操作时遇到了一些问题。我有一个应用程序在UIImageView中显示图像,我希望在用户点击它时放大图像。我认为最简单的方法就是在UIImageView上隐藏一个半透明的按钮,并在用户点击时触发一个动作。就我所知,我不知道我的行为方式应该是什么样子。这是我到目前为止有:如何在点击时放大UIImageView
- (IBAction)enlargeImage1:(id)sender {
CGRect myImageRect = CGRectMake(0.0f, 0.0f, self.view.frame.size.width, 80.0f);
UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];
[myImage setImage:[UIImage imageNamed:@"gradient-253x80.png"]];
[self.view addSubview:myImage];
}
我的UIImageView名为ImageView的,并且我连着上面的方法将UIButton的是在ImageView的。当我点击图片时,它根本不会放大。任何帮助或建议非常感谢,谢谢!
答
有两种方法可以解决这个问题。你可以有一个透明的按钮,你会看到哪一个响应一个水龙头,并在下面有图像视图。
另一种方法是简单地取消UIImageView并简单地使用UIButton。您可以将xib/storyboard中的按钮类型设置为自定义按钮。然后,您可以在界面构建器中设置按钮的图像或背景图像。所有你需要的就是连接你的按钮到一个动作。
你的行动可能是一些在你的头文件类似如下:
- (IBAction)buttonTapped:(id)sender;
在你实现你只需要改变的UIImageView或者根据你的方法的的UIButton的框架。
- (IBAction)buttonTapped:(id)sender {
UIButton *button = (UIButton *)sender;
[button setFrame:CGRectMake(0, 0, 100, 100)];
// or [yourImageViewName setFrame:CGRectMake(0, 0, 100, 100)];
}
您将需要调整CGRectMake中的值以适合您的需要。前两个参数是按钮/图像在其父视图中出现位置的x和y坐标。第二个参数是按钮/图像的宽度和高度。
希望有所帮助。
*编辑 您是否已将UIImageView连接到头文件中的出口?
在你的方法中,而不是创建另一个图像,你应该简单地改变现有的图像的大小。你可以做到这一点如下:
[self.imageView setFrame:CGRectMake(0, 0, self.view.frame.size.width, 80)];
太棒了,非常感谢你的帮助史蒂夫! – 2012-03-29 22:17:48
我可以改用UIView吗?这是我遇到的问题,但我还没有真正接近它呢......:P – jsetting32 2013-06-19 16:33:13