使用按钮

时间:2017-09-15 17:59:01

标签: ios objective-c uibutton

我在UIImages中有大约15 UIView个手势识别器。当你触摸一个并稍微平移时,通过在另一个我永久在前面的视图下插入子视图,它会到达其他视图的前面。

我正在寻找一种方法来制作一个按钮,用于移除前面的UIImage

我试过了removeFromSuperview。但是只能通过名称而不是索引位置来调用UIImage

exchangeSubview subViewAtIndex

但它完成了它的说法和交流。但我无法找到删除或隐藏的方法。

感谢您提供任何线索。

2 个答案:

答案 0 :(得分:0)

您可以生成要删除的图像的哈希值,然后将哈希值与UIImageView中的图像哈希值进行比较,如果它与removeFromSuperview相同,则移动到下一个视图。

OR 尝试比较UIImagePNGRepresentation生成的数据,如果要传递相同的图像以转换为数据,则应返回true。

- (BOOL)imageView:(UIImageView*)iv hasImageWithName:(NSString*)imageName
{
    return UIImagePNGRepresentation([UIImage imageNamed:imageName]) == UIImagePNGRepresentation(iv.image);
}

答案 1 :(得分:0)

我建议采用更简单的方法。将视图移动到前面以让用户开始拖动时,将视图保存到weak实例变量frontImageView

当用户点击按钮时,调用如下代码:

[frontImageView removeFromSuperview];

编辑:

请注意,该方法可让用户在拖动图像视图后删除它,但只能删除一次。删除图像视图后,您必须点击另一个图像视图才能将其删除。如果您想要删除顶部图像视图而不管它是否被轻击/拖动,您需要检查父视图控制器的子视图数组。

如果包含所有图片视图的视图名为containerView,则代码可能如下所示:

[containerView.subviews.lastObject removeFromSuperview];

第二行会让用户反复点击删除按钮并删除一张又一张图像,而无需点击新图像进行选择。