点击时如何放大UIImageView

时间:2012-03-29 21:45:36

标签: objective-c ios 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,我将上述方法附加到imageView上的UIButton。当我点击图像时,它根本不会放大。非常感谢任何帮助或建议,谢谢!

1 个答案:

答案 0 :(得分:4)

有两种方法可以解决这个问题。你可以看到一个透明按钮,它可以响应一个水龙头并在下方显示图像视图。

另一种方法是简单地取消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)];