【问题标题】:How to present an invisible interacting button above the UIImageView如何在 UIImageView 上方呈现一个不可见的交互按钮
【发布时间】:2012-12-10 06:01:34
【问题描述】:

在我的应用程序中,我想通过 ImagePicker 从图库或相机中选择一些图像(尽管这部分工作正常)并将其呈现在 UIImageView 中。所以在 IB 中我创建了一个视图、按钮和一个方法(它选择了一个图像):

@property (retain, nonatomic) IBOutlet UiImageView *sourceImageView;
@property (retain, nonatomic) IBOutlet UiButton *selectImageButton;

-(IBAction)selectImage;

在应用程序的第一次运行时,我需要显示一个按钮而不是视图,因此我将它放在 IB 中的视图上方并隐藏视图。但是用户拿起图片后,需要在视图中呈现而不是按钮,如果用户想选择另一张图片,他应该在显示的图片上按下并选择另一张。所以,我认为,我需要以某种方式将按钮设置为不可见,但它应该位于视图上方并对触摸做出反应。我正在尝试一个明显的决定:

-(void)viewDidAppear{
_selectedImageButton.hidden=YES;
_sourceImageView.hidden=NO;

而且它是不可触碰的。我还尝试将 _selectImageButton.alpha 设置为最小值,它可以工作,直到它等于 0。但在这种情况下,视图上方仍然可以看到一些按钮,我不能接受它。 我觉得应该有一些简单的方法来做到这一点,因为这个问题似乎很普遍。

【问题讨论】:

  • 如果你创建一个样式为UIButtonTypeCustom的按钮,那么它默认是不可见的(由于缺乏合理的默认图形属性)。

标签: objective-c ios uiimageview uibutton


【解决方案1】:

来自 H2CO3 的评论:
如果你创建一个 UIButtonTypeCustom 样式的按钮,那么它默认是不可见的(由于缺乏合理的默认图形属性)

只要按钮是透明的,就不需要隐藏任何东西

【讨论】:

  • 我正在尝试添加一个不可见的自定义按钮,但它仍然不起作用:_selectImageButton.hidden=YES; _sourceImageView.hidden = NO; _sourceImageView.image = _sourceImage; [self.sourceImageView setUserInteractionEnabled:YES]; UIButton *selectButton = [UIButton buttonWithType:UIButtonTypeCustom]; [selectButton addTarget:self action:@selector(selectImage) forControlEvents:UIControlEventTouchUpInside]; [self.sourceImageView addSubview:selectButton]; [selectButton sizeToFit];
  • selectButton.frame = sourceImageView.bounds
  • 非常感谢!它完美地工作。我需要用这个按钮做一些内存管理吗? (我在没有 ARC 的情况下工作)
猜你喜欢
  • 2019-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多