所以我必须知道,一个是产品而另一个是垃圾桶。现在我有它所以你可以将产品拖入垃圾桶,当你发布它将检查CGRectIntersectsRect然后在产品上运行删除功能。我现在想要做到这一点,当你在垃圾桶上空盘旋时,垃圾桶会变成一个发光的垃圾桶(这样你就知道你将要删除该物品)。现在我假设这将是一个简单的图像悬停变化。所以我尝试了以下但它似乎不起作用。
UIImage *hoverImage = [UIImage imageNamed: @"trashHover.png"];
[deleteItemButton setImage:hoverImage forState:UIControlStateHighlighted];
任何关于如何获得它的想法,以便当一个矩形在另一个矩形之上时我们可以改变图像?或者我应该做其他事情,然后CGRectIntersectsRect?
答案 0 :(得分:1)
当用户开始触摸该给定元素时,将设置UIControlStateHighlighted
状态。用户必须开始触摸垃圾桶而不是拖动的项目。来自文档:
控件的突出显示状态。控件在a时进入此状态 在跟踪期间和触摸时触摸进入和退出 事件。您可以通过突出显示来检索和设置此值 属性。
为了在拖动其他图片时让垃圾桶成像,您必须回复touchesMoved:withEvent
回调。
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
for (UITouch *touch in touches)
{
CGPoint touchPoint = [touch locationInView:self.view];
CGPoint buttonPoint = [self.view convertPoint:touchPoint toView:self.someButton];
if ([self.someButton pointInside:buttonPoint withEvent:event])
{
[self.someButton setImage:[UIImage imageNamed:@"highlight"] forState:UIControlStateNormal];
}
else
{
[self.someButton setImage:[UIImage imageNamed:@"normal"] forState:UIControlStateNormal];
}
}
}