iOS:验证一个点是否在矩形内
有没有办法验证 CGPoint
是否位于特定的 CGRect
内?
一个例子是: 我正在拖动一个 UIImageView
,我想验证它的中心点 CGPoint
是否位于另一个 UIImageView
内。
Is there a way to verify if a CGPoint
is inside a specific CGRect
?
An example would be:
I'm dragging a UIImageView
and I want to verify if its central point CGPoint
is inside another UIImageView
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
Swift 4
Objective-C
使用
CGRectContainsPoint()
< /a>:bool CGRectContainsPoint(CGRect 矩形, CGPoint 点);
参数
矩形
要检查的矩形。point
要检查的点。返回值
如果矩形不为空且该点位于矩形内,则为 true;否则为假。
如果一个点的坐标位于矩形内部或者位于最小 X 或最小 Y 边缘上,则该点被视为位于矩形内部。
Swift 4
Objective-C
Use
CGRectContainsPoint()
:bool CGRectContainsPoint(CGRect rect, CGPoint point);
Parameters
rect
The rectangle to examine.point
The point to examine.Return Value
true if the rectangle is not null or empty and the point is located within the rectangle; otherwise, false.
A point is considered inside the rectangle if its coordinates lie inside the rectangle or on the minimum X or minimum Y edge.
在 Swift 中,看起来像这样:
Swift 3 版本:
文档链接 。请记住检查包含性,如果两者位于同一坐标系中,否则需要进行转换(一些示例)
In Swift that would look like this:
Swift 3 version:
Link to documentation . Please remember to check containment if both are in the same coordinate system if not then conversions are required (some example)
很快你就可以这样做:
“frame”是一个 CGRect,“point”是一个 CGPoint
In swift you can do it like this:
"frame" is a CGRect and "point" is a CGPoint
UIView 的 pointInside:withEvent: 可能是一个很好的解决方案。
将返回一个布尔值,指示给定的 CGPoint 是否在您正在使用的 UIView 实例中。
例子:
UIView's pointInside:withEvent: could be a good solution.
Will return a boolean value indicating wether or not the given CGPoint is in the UIView instance you are using.
Example:
在 Objective c 中,您可以使用 CGRectContainsPoint(yourview.frame, touchpoint)
在 swift 3 中 yourview.frame.contains(touchpoint)
In objective c you can use CGRectContainsPoint(yourview.frame, touchpoint)
In swift 3 yourview.frame.contains(touchpoint)
很简单,您可以使用以下方法来完成此类工作: -
在您的情况下,您可以将 imagView.center 作为点传递,另一个 imagView.frame 作为直接在 about 方法中。
您还可以在下面的 UITouch 方法中使用此方法:
It is so simple,you can use following method to do this kind of work:-
In your case,you can pass imagView.center as point and another imagView.frame as rect in about method.
You can also use this method in bellow UITouch Method :
我开始学习如何使用 Swift 进行编码,并试图解决这个问题,这就是我在 Swift 的游乐场上想到的:
它打印内部
I'm starting to learn how to code with Swift and was trying to solve this too, this is what I came up with on Swift's playground:
It prints inside