如何在点击时放大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)]; 
+0

太棒了,非常感谢你的帮助史蒂夫! – 2012-03-29 22:17:48

+0

我可以改用UIView吗?这是我遇到的问题,但我还没有真正接近它呢......:P – jsetting32 2013-06-19 16:33:13