使用计时器将UIbutton移动到随机位置

LodgeApps

我在Objective C中制作了一个简单的应用程序,每次单击按钮时,该按钮都会更改屏幕上的位置。第一次单击该按钮时,计时器开始计时。

问题是计时器每秒钟关闭一次,按钮返回到其原始位置。如何使计时器不影响按钮移动?

这是我的ViewController.m文件中的代码:

注意:我根本无法弄清楚。我可能需要有人真正为我讲清楚,告诉我该怎么做。谢谢!

注意:我的UIButton是“ blackDot”

-(IBAction) mainClickButton{


int xmin = ([blackDot frame].size.width)/2;
int ymin = ([blackDot frame].size.height)/2;

int x = xmin + arc4random_uniform(self.view.frame.size.width - blackDot.frame.size.width);
int y = ymin + arc4random_uniform(self.view.frame.size.height - blackDot.frame.size.height);

[blackDot setCenter:CGPointMake(x, y)];


if (timerBeginInt < 1) {

    [timerLabel setText:@"Time : 0:10"];
    [self.view addSubview:timerLabel];
    currMinute=0;
    currSeconds=10;
    [self start];

}

timerBeginInt = timerBeginInt + 1;


}





-(void)start
{
    timer=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerFired) userInfo:nil repeats:YES];

}
-(void)timerFired
{
    if((currMinute>0 || currSeconds>=0) && currMinute>=0)
    {
        if(currSeconds==0)
        {
            currMinute-=1;
            currSeconds=59;
        }
        else if(currSeconds>0)
        {
            currSeconds-=1;
        }
        if(currMinute>-1)
            [timerLabel setText:[NSString stringWithFormat:@"%@%d%@%02d",@"Time : ",currMinute,@":",currSeconds]];
    }
    else
    {
        [timer invalidate];
        timerBeginInt = 0;
    }
}

任何帮助表示赞赏!谢谢!

Henson Fang

LodgeApps。

我复制了您的代码,使用自己的Xcode运行它,然后发现了使您感到困惑的问题。

简短的解决方案在这里:

打开情节提要或Xib文件,请保持此状态。 在此处输入图片说明

如果您想继续使用自动版式,

[self.view removeConstraints:blackDot.constraints];

NSLayoutConstraint* leftConstraint = [NSLayoutConstraint constraintWithItem:blackDot attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1.0f constant:x];

NSLayoutConstraint* topConstraint = [NSLayoutConstraint constraintWithItem:blackDot attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1.0f constant:y];

leftConstraint.active = YES;
topConstraint.active = YES;

更换 setCenter

出于更深层次的原因:

启用autolayout属性后,您将无法更改IBOutlet的框架,每次尝试修改框架或中心都是非法的。您只能更改约束以移动IBOutlet。

令我困惑的是:

根据代码,单击按钮,按钮将立即移动。但是不会。因为方法在自动版式中类似setCentersetFrame不起作用。自动布局需要约束才能将UI(IBOutlets)放在正确的位置。如果保持自动布局打开,然后不对IB进行约束,则可能发生任何我无法解释的事情。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用计时器在地图上放置标记

来自分类Dev

使用计时器将操作延迟几秒钟

来自分类Dev

在vb中使用计时器

来自分类Dev

如何将按钮移动到随机位置?(迅速)

来自分类Dev

如何将按钮移动到随机位置?(快速)在iAd展示时

来自分类Dev

在JTextArea中获得位置并使用计时器

来自分类Dev

QML使用计时器移动文本

来自分类Dev

使用计时器停止另一个计时器

来自分类Dev

(快速)将按钮移动到随机位置,但有例外

来自分类Dev

SwiftUI:如何使用计时器在不同位置创建多个视图?

来自分类Dev

如何使用计时器触发器将时区传递给Azure函数

来自分类Dev

计时器-如何使用计时器以一定间隔显示文本?

来自分类Dev

如何使用PyGame计时器事件?如何使用计时器将时钟添加到pygame屏幕?

来自分类Dev

使用计时器控件时如何将小时文本更改为分钟

来自分类Dev

使用计时器将标记放置在地图上

来自分类Dev

使用计时器移动PictureBox

来自分类Dev

如何将按钮移动到随机位置?(迅速)

来自分类Dev

使用计时器的内存泄漏

来自分类Dev

如何将按钮移动到随机位置?(快速)在iAd展示时

来自分类Dev

使用计时器限制提问

来自分类Dev

使用计时器逐行读取

来自分类Dev

使用计时器将文本框行发送到记事本

来自分类Dev

IntelliJ将鼠标光标移动到随机位置

来自分类Dev

计时器在随机位置散播QPushButton

来自分类Dev

C# - 在不使用计时器的情况下将图像(汽车)从 a 点移动到 b 点

来自分类Dev

Robot.mouseMove(1000,1000) 将鼠标移动到屏幕上的随机位置......为什么?

来自分类Dev

将处理程序移动到不同的 WAR 文件后如何移动 EJC 计时器

来自分类Dev

如果动画对象到达特定位置,如何使用计时器停止动画?

来自分类Dev

如何将文件移动到python中的随机位置(可追溯)

Related 相关文章

  1. 1

    使用计时器在地图上放置标记

  2. 2

    使用计时器将操作延迟几秒钟

  3. 3

    在vb中使用计时器

  4. 4

    如何将按钮移动到随机位置?(迅速)

  5. 5

    如何将按钮移动到随机位置?(快速)在iAd展示时

  6. 6

    在JTextArea中获得位置并使用计时器

  7. 7

    QML使用计时器移动文本

  8. 8

    使用计时器停止另一个计时器

  9. 9

    (快速)将按钮移动到随机位置,但有例外

  10. 10

    SwiftUI:如何使用计时器在不同位置创建多个视图?

  11. 11

    如何使用计时器触发器将时区传递给Azure函数

  12. 12

    计时器-如何使用计时器以一定间隔显示文本?

  13. 13

    如何使用PyGame计时器事件?如何使用计时器将时钟添加到pygame屏幕?

  14. 14

    使用计时器控件时如何将小时文本更改为分钟

  15. 15

    使用计时器将标记放置在地图上

  16. 16

    使用计时器移动PictureBox

  17. 17

    如何将按钮移动到随机位置?(迅速)

  18. 18

    使用计时器的内存泄漏

  19. 19

    如何将按钮移动到随机位置?(快速)在iAd展示时

  20. 20

    使用计时器限制提问

  21. 21

    使用计时器逐行读取

  22. 22

    使用计时器将文本框行发送到记事本

  23. 23

    IntelliJ将鼠标光标移动到随机位置

  24. 24

    计时器在随机位置散播QPushButton

  25. 25

    C# - 在不使用计时器的情况下将图像(汽车)从 a 点移动到 b 点

  26. 26

    Robot.mouseMove(1000,1000) 将鼠标移动到屏幕上的随机位置......为什么?

  27. 27

    将处理程序移动到不同的 WAR 文件后如何移动 EJC 计时器

  28. 28

    如果动画对象到达特定位置,如何使用计时器停止动画?

  29. 29

    如何将文件移动到python中的随机位置(可追溯)

热门标签

归档