gpt4 book ai didi

ios - 如何滚动到对象的中心位置

转载 作者:行者123 更新时间:2023-11-29 10:37:42 25 4
gpt4 key购买 nike

您好,我正在使用基本的 UIKit 制作一个简单的游戏,其中有一个对象会在屏幕上弹出。

我试图做到这一点,以便每次弹出该对象时,屏幕都会滚动到该对象并将其置于屏幕中心。基本上我有一个 UIView,里面有弹出的对象,UIViewUIScrollView 的 subview 。所有这些都是我的 ViewControllerself.view 的 subview 。我正在使用 UIScrollview 滚动浏览其 subview 的内容及其中的对象。我不确定 UIScrollView 是否是我想要做的事情的理想选择,但我一直在寻找一种方法来滚动对象的位置并将其置于设备中间。最好有动画。

如果有人知道可以帮助我解决问题的方法或公式,那就太棒了。提前致谢:D

更新:除了在彼此中添加 View 之外,我真的没有太多关于此的代码:

self.world =  [[UIView alloc]initWithFrame:CGRectMake(0, 0, currentDeviceWidth*4, currentDeviceHeight*2.2)];
self.world.backgroundColor = [UIColor blueColor];

_scrollView = [[UIScrollView alloc] initWithFrame:[[self view] bounds]];
[_scrollView setContentSize:self.world.frame.size];

[_scrollView addSubview:self.world];
[[self view] addSubview:_scrollView];

但下面是我想要完成的简单图像。箭头只是表示可能的滚动方向。

Apple 对象在屏幕的一侧 注意:apple 对象是 self.world 的 subview ,self.world 是 scrollview 的 subview

apple object is off the side of the screen Note: apple object is a subview of self.world and self.world is a subview of scrollview

最后的样子是现在 scrollview 将 self.world 滚动到 apple 对象在屏幕中央的地方

The finish look is where now the scrollview has scroll self.world to where the apple object is in the center of the screen

只是想基本上实现用户如何手动将对象滚动到中心,而不是在不使用用户触摸的情况下自动执行。

最佳答案

我认为您可能需要contentOffset,它是UIScrollView 的一个属性。此属性控制 contentView 的位置。
现在假设,你的苹果在 self.world 的中心,然后将它放在中间的动画是这样的:

    [UIView animateWithDuration: 0.5//you can put any float as you want
animations:^{self.world.contentOffset = CGPointMake((_scrollview.frame.size.width - self.world.frame.size.width) / 2, (_scrollview.frame.size.height - self.world.frame.size.height) / 2);
}];

如果你把你的苹果放在任何其他位置,你应该自己计算位置,并将 contentOffset 设置为正确的位置。我认为除中心以外的任何位置都非常复杂,您的计算应该涉及苹果在 self.world View 中的位置。

关于ios - 如何滚动到对象的中心位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26087203/

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