gpt4 book ai didi

ios - 如何在不丢失自动布局的情况下重新定位 ImageView?

转载 作者:行者123 更新时间:2023-11-29 12:35:56 26 4
gpt4 key购买 nike

我正在 Xcode 6 中制作一个单 View 应用程序游戏。我创建了一个 UIImageView 并在我的 .h 文件中将其声明为 *sphere

    IBOutlet UIImageView *sphere;

然后在我的 .m 文件中,我使用以下代码将其放置在对象与其相交时的随机位置。

-(void)PlaceSphere{

sphereX = arc4random() %492;
sphereX = sphereX + 34;
sphereY = arc4random() %249;
sphereY = sphereY + 39;

sphere.center = CGPointMake(sphereX, sphereY);

}

//再往下

    if(CGRectIntersectsRect(_ball.frame, sphere.frame)){
[self PlaceSphere];

但是,我的问题是在 iOS8 中,使用自动布局...当球体移动到另一个位置时,它会闪烁到一个新位置,然后移回 Storyboard上的原始位置。我该如何解决这个问题?

我也遇到过这种情况,我的球会在原始球在 Storyboard 上闪烁的地方移动。有没有一种方法可以解决这个问题并仍然使用自动布局?

谢谢

我现在在没有自动布局的情况下工作,使用 iPhone 6 的模拟器看起来不错...那么只要我使用自动调整大小选项,如果它只是一个单一 View 应用程序,我是否有自动布局有关系吗?

最佳答案

您可以在代码中为约束创建导出,就像任何其他界面元素一样。您可以在代码中更改其值以定位 View 。

因此,要做到这一点,您的 View 应该具有 x 和 y 位置约束(例如,前导空间到 super View ,顶部空间到 super View )。您在 Storyboard中选择约束,就好像它们是一个 View 一样,并在 View Controller 代码中为其创建导出:

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *topConstraint;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *leftConstraint;

现在您可以使用“常量”属性更改值:

self.topConstraint.constant = 39 + (arc4random() %249);

还有其他方法可以做到这一点,但对我来说,如果您使用自动布局,这是最好的方法。


至于您的另一个问题,“我使用自动布局是否重要?”,这是个人选择!但对我来说,这是非常值得的,因为它可以更轻松地支持横向模式和具有不同屏幕尺寸的设备。

关于ios - 如何在不丢失自动布局的情况下重新定位 ImageView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26325931/

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