Objective-C中的标签文本

时间:2014-11-17 15:54:27

标签: ios objective-c uiview

我有关于Label.Test的问题

CGRect frame = _gobutton.frame;
frame.origin.x=rand()%330+1;
frame.origin.y=rand()%550+1;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3];
_gobutton.frame = frame;
[UIView commitAnimations];

i=i+1;

self.score.Text = [NSString stringWithFormat:@"%i",i];

我试图在屏幕上移动按钮,当我点击按钮时会在标签中显示分数。目前,当我点击按钮时,分数会增加,但我的按钮会移回原来的位置。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您发布的代码应将按钮设置为新位置的动画。正如holex在评论中所说,你应该真正使用像animateWithDuration:animations:这样的新方法及其变体。

如果您使用自动布局(Xcode 5及更高版本中的默认或XIB文件和故事板),则无法通过移动框架为视图(或者是一种视图)设置动画。相反,您需要使用位置约束,将出口附加到约束,并更改约束的常量值。

如果要为框架设置动画,则需要关闭XIB / Storyboard上的自动布局,并使用较旧的struts和spring样式调整大小。

答案 1 :(得分:0)

由于您使用自动布局的故事板,它将始终返回其位置。 如果您计划为视图设置动画,我会以编程方式创建它。

    _gobutton = [[UIButton alloc] initWithFrame:CGRectMake(buttonX, buttonY, buttonWidth, buttonHeight)];

     [_gobutton addTarget:self action:@selector(yourButtonSelector:) forControlEvents:UIControlEventTouchUpInside];

     [_gobutton setBackgroundImage:[UIImage imageNamed:@"aphoto"] forState:UIControlStateNormal];

     [self.view addSubview:_gobutton];

只需从故事板上取下按钮,然后像这样创建按钮。您可以将它移动到任何您想要的位置。然后以编程方式更改故事板约束更容易。