【问题标题】:How do I find the lowest or highest point on a UIView being dragged with UIAttachmentBehavior?如何在使用 UIAttachmentBehavior 拖动的 UIView 上找到最低点或最高点?
【发布时间】:2014-07-21 23:43:04
【问题描述】:

根据anchorPointUIAttachmentBehavior 的位置,视图可以完全旋转,因此它更像是菱形而不是正方形。在这些情况下,它旋转了 90°,我如何找到这个 UIView 的最低点或最高点(相对于窗口)?

UIView 是一个(非旋转)正方形时,这很容易,因为我可以只使用CGRectGetMaxY(或最小值)并且x 值无关紧要,然后使用convertPoint,但使用x值的旋转似乎很重要,好像我选择maxX,它会告诉我右下角的点,而minX会告诉我左下角的点。

我只想要UIView 中存在的最低点。我如何得到这个?

编辑:这里有一些代码显示了我目前是如何尝试的:

CGPoint lowestPoint = CGPointMake(CGRectGetMinX(weakSelf.imageView.bounds), CGRectGetMaxY(weakSelf.imageView.bounds));
CGPoint convertedPoint = [weakSelf.imageView convertPoint:lowestPoint toView:nil];

根据我为lowestPointCGPointMake 中的x 值提供的内容,对convertedPoint 的y 值的跟踪会完全改变。

【问题讨论】:

    标签: ios objective-c ios7 uiview uikit-dynamics


    【解决方案1】:

    视图的frame 是它的边界框。通常你应该小心使用转换视图的frame,这正是由 UIKit-Dynamics 旋转的视图。但它确实提供了您所追求的信息。

    【讨论】:

    • 我很困惑这如何回答我的问题。
    • 到底试试什么?使用视图的框架?在我可能不清楚的第二段中,我描述了这就是我试图做的,但是我在转换之前提供的 x 值似乎决定了我为“最低点”返回的值:而不是给我最低点,如果我提供 maxY 和 minX,它将跟踪左下角。如果我提供 maxY 和 maxX 它将跟踪右下角。我似乎无法让它跟踪绝对最低点。附上一些代码来显示我目前在做什么。
    • 但是您添加的代码显示您使用图像视图的bounds。我建议您尝试改用它的frame
    • 框架似乎根本没有改变,只有图像视图的边界会改变。
    猜你喜欢
    • 1970-01-01
    • 2021-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-14
    • 2019-01-21
    • 2021-04-18
    • 1970-01-01
    相关资源
    最近更新 更多