gpt4 book ai didi

ios - 如何知道 UIView 在屏幕左侧或右侧的当前位置?

转载 作者:行者123 更新时间:2023-11-29 00:17:23 25 4
gpt4 key购买 nike


我正在制作一个可拖动的 UIView,它可以在屏幕上的任何位置移动。我使用以下代码将其设置为在 3 秒后自动隐藏其 1/2 部分:

-(void)hidePart {
if (self.frame.origin.x > 0) {
[UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionTransitionNone animations:^{
self.frame = CGRectMake(0 - self.frame.origin.x - self.frame.size.width/3, self.frame.origin.y, self.frame.size.width, self.frame.size.height);
} completion:^(BOOL finished) {
}];
}
}

如果我将 UIView 放在屏幕左边缘附近,它就可以正常工作。但如果我拖动它并将其放在右边缘附近,3 秒后它就会跑到左侧并走出屏幕。我知道这是因为我在 3 秒延迟后将其帧设置为:(当前 X - 帧),并且在这种情况下当前 X 非常大。

我想知道怎样才能让它变得更好?我的意思是,如果这个 UIView 更接近左边缘,它会移到左侧,如果它更接近右边缘,它会移到右侧?

最佳答案

首先,您应该认识到可拖动 View 位于 View 的哪个部分,左侧还是右侧。

CGFloat pointLeft = CGRectGetMidX(self.frame);
BOOL isLeft = CGRectGetMidX(self.frame) < kScreenWidth/2;

然后,根据它向左或向右设置 View 的动画。你已经完成了左边。

关于ios - 如何知道 UIView 在屏幕左侧或右侧的当前位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44981894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com