部分图片可在iOS中点击

时间:2014-07-24 20:58:43

标签: ios objective-c

我不知道这是否是提出这个问题的正确位置。

当我在UIImageView中显示时,我有一个图像。此图像视图采用全屏。在图像中有Facebook,Twitter和电子邮件按钮(实际上不是按钮 - 它是在图像中设计的)。

我想让facebook,twitter和电子邮件“按钮”可以点播并做点什么。这可能吗?

3 个答案:

答案 0 :(得分:1)

你没有以正确的方式做到这一点。

大多数情况下,当你创建一个接口时,会有很多逻辑组件,每个组件都有自己的动作(动画/可点击/可编辑的组件)。对于每个不同的逻辑组件,您应该在其上放置不同的元素。

在您的情况下,我会为背景设置一个全屏UIImageView,为其上的文字添加UILabel(如果您的文字不会,您可以选择退出对它有任何影响,但这是我喜欢的,因为这样它在未来会更灵活)。除此之外,您还可以为可点击的元素添加UIButton,例如,Facebook和Twitter按钮。


编辑:如果你只是讨厌制作单独的图像,你可以随时制作隐形按钮(没有任何文字的按钮)

答案 1 :(得分:0)

实施touchesEnded:withEvent:方法并检查触控位置是否在图像中所需按钮的矩形内。

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{
  [super touchesEnded:touches withEvent:event];

    UITouch *touch = [touches anyObject];
    CGPoint location = [touch locationInView:self.view];

    if (CGRectContainsPoint(_facebookButtonRect, location))
    {
        // Do your stuff.
    }
}

您还可以在图像视图的顶部放置隐形按钮。

答案 2 :(得分:0)

对于每个按钮:

1)将透明的UIButton作为子视图添加到图像视图中。通过设置框架将其放置在图像上。使用alpha=1backgroundColor = [UIColor clearColor]作为按钮。同时将按钮标题设置为“”。所有这些都应该给你一个隐形按钮,仍然可以响应触摸。

2)照常处理按钮点击事件。