UIImageView 上的多个按钮
Posted
技术标签:
【中文标题】UIImageView 上的多个按钮【英文标题】:Multiple buttons on UIImageView 【发布时间】:2012-02-01 06:28:54 【问题描述】:我有一个UIImageView
。该图像的某些部分,我想用作UIButtons
。但问题是,这些图像部分的形状不规则。我还没有真正尝试过任何东西。我想到的直接解决方案是识别小帧图像并将自定义按钮放在该帧上。但是由于图像部分(按钮区域)的形状不规则,所以这个概念失败了。
如何在UIImageView
上放置按钮,以便图像的特定部分(不是规则形状)响应某些操作。
考虑下图:
我想在中心圆上放置一个按钮,它是黑暗的。我想将按钮放置在两条垂直线之间,以便四分之一的按钮可以通过不同的操作单击。所以,我总共有 5 个按钮。
【问题讨论】:
你能多解释一下吗?我无法理解这一点。也无法理解您要做什么..!! 请看我编辑的问题。 你为什么不使用自定义按钮?自定义按钮是透明的! 如何让自定义按钮的边框不规则? 【参考方案1】:我能想到 2 个选项:
第一个
-(CGFloat)percentFromHeight:(CGFloat)percent
return (CGRectGetHeight(self.bounds)/100)*percent;
-(CGFloat)percentFromWidth:(CGFloat)percent
return (CGRectGetWidth(self.bounds)/100)*percent;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
UITouch *touch = [touches anyObject];
CGPoint currentTouchPosition = [touch locationInView:self];
//first check if the tup is in the center
if(currentTouchPosition.x > [view percentFromWidth:45] && currentTouchPosition.x < [view percentFromWidth:55] && currentTouchPosition.y > [view percentFromWidth:45] && currentTouchPosition.y < [view percentFromWidth:55])
//the tup is in the center
//Do your thing
return;
//if this is not in the center, check other options
if(currentTouchPosition.x > [view percentFromWidth:50])
if(currentTouchPosition.y > [view percentFromHeight:50]
//this is the bottom left side
else
//this is the top left side
else if(currentTouchPosition.x < [view percentFromWidth:50]
if(currentTouchPosition.y > [view percentFromHeight:50]
//this is the bottom right side
else
//this is the top right side
秒-
根据需要继承 UIButton / UIImage 并使用 UIBezierPath 在drawRect:
中绘制自定义形状,然后使用[UIBezierPath containsPoint]
检查这些形状是否在视图/按钮的路径内。
【讨论】:
不需要if(currentTouchPosition.x < [view percentFromWidth:50]
当然,对于当前按钮的位置来说,这是一个非常好的解决方案。但是我们仍然需要实现逻辑来尝试检查女巫按钮是否被手动点击,对于更复杂的具有不规则形状的按钮块来说,这将是非常困难的。可能颜色和 alpha 的方式会更有用。
我同意,但我的回答是针对这个问题。并且他的按钮颜色相同。【参考方案2】:
阅读此topic - 即使是同一张图片。
【讨论】:
【参考方案3】:我的意见是您应该使用 touches 方法来查找触摸的部分(使用图像框架和可触摸部分的框架)并采取适当的操作而不是添加按钮。
【讨论】:
你能举个例子吗。会很有帮助的。 看看这个。 ***.com/questions/647122/…以上是关于UIImageView 上的多个按钮的主要内容,如果未能解决你的问题,请参考以下文章