我有一个 UIImageView,其中有一个标签,其文本必须在平移手势上移动。虽然我可以拖动测试,但在限制 ImageView 中文本的移动时遇到问题。下面的代码用于限制 x 方向的移动,每当我尝试对 y 方向实现类似的方法时,在拐角处会出现两种情况,从而产生问题。有没有更好的方法请帮忙。
func dragText(sender: UIPanGestureRecognizer) {
let translation = sender.translationInView(self.view)
print(translation)
switch sender.state {
case .Changed:
self.textLabelOriginX = (sender.view?.frame.origin.x)!
if self.textLabelOriginX <= 10 {
sender.view?.center = CGPointMake(sender.view!.center.x + 0.1, sender.view!.center.y + translation.y)
} else if ((sender.view?.frame.origin.x)! + sender.view!.frame.width >= sender.view?.superview?.bounds.width) {
sender.view?.center = CGPointMake(sender.view!.center.x - 0.1, sender.view!.center.y + translation.y)
}
else {
sender.view?.center = CGPointMake(sender.view!.center.x + translation.x, sender.view!.center.y + translation.y)
}
sender.setTranslation(CGPointZero, inView: self.view)
default:
break
}
}
最佳答案
核心显卡有很多functions检查矩形是否在特定框架、并集、交集等内部或外部
在 .Changed 中,您可以检查要应用于移动 View 的翻译是否完全包含在该特定矩形内。
bool CGRectContainsRect (
CGRect rect1,
CGRect rect2
);
关于ios - 限制将标签拖出其 superView ios swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36057155/