作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在 iPhone View 上放置一个圆形图像,然后在圆内而不是在圆外消耗点击。我遇到的问题是,当我在 Interface Builder 中将 UIImageView 放置在屏幕 View 上时,我似乎被限制为矩形形状。我尝试使用圆形图像,其中圆形外部区域保持透明,但整个图像仍然是矩形,因此当将其放置在 UIImageView 上并连接以识别点击手势时,它仍然会拾取圆形本身外部的点击.
下图显示了我的意思。蓝点代表保存图像的 UIImageView 的外边框。点击手势识别当前链接到该 UIImageView,但如您所见,UIImageView 的角上有一些未被圆形图像覆盖的空间。有没有什么方法可以使 UIImageView 符合非矩形形状,或者在不使用 UIImageView 的情况下将图像放置在 View 上,并且仍然能够连接点击识别?
我对 iPhone 图形还很陌生,但是有人对此有一些想法或者可以为我指出正确的方向吗?
谢谢!
最佳答案
假设是一个圆形,而不仅仅是一个椭圆形:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
CGFloat halfSize = [self bounds].size.width * 0.5f;
CGPoint location = [[touches anyObject] locationInView:self];
location.x -= halfSize;
location.y -= halfSize;
CGFloat squaredDistanceFromCenter = location.x * location.x + location.y + location.y;
if (squaredDistanceFromCenter < (halfSize * halfSize)) {
NSLog(@"Within circle :)");
} else {
NSLog(@"Not within circle :(");
}
}
关于iphone - 如何将iPhone点击手势识别限制在圆形图像内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3322812/
我是一名优秀的程序员,十分优秀!