我对编程非常陌生,所以我在尝试这样做时遇到了一些问题。我有一个在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。当我点击图像时,它根本不会放大。非常感谢任何帮助或建议,谢谢!
答案 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)];