如何沿 y 轴 iphone 向下移动按钮操作

Posted

技术标签:

【中文标题】如何沿 y 轴 iphone 向下移动按钮操作【英文标题】:how to move button action down along y axis iphone 【发布时间】:2013-04-11 07:48:42 【问题描述】:

我有一个带有出口 btnAdd 的按钮操作,当它按下它时添加文本字段,我想将按钮操作也移动到文本字段下方,并且同样希望在按下按钮 BtnRemove 时恢复,

 - (IBAction)btnAddTxtField:(id)sender 

    textField = [[UITextField alloc] initWithFrame:CGRectMake(76, ([txtFieldArray count] * 30), 191, 25)];
    [textField setBorderStyle:UITextBorderStyleLine];
    textField.font = [UIFont systemFontOfSize:20];
    textField.placeholder = @"Enter text";
    textField.autocorrectionType = UITextAutocorrectionTypeNo;
    textField.keyboardType = UIKeyboardTypeDefault;
    textField.returnKeyType = UIReturnKeyDone;
    textField.clearButtonMode = UITextFieldViewModeWhileEditing;
    textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
    textField.delegate = self;
    [myScrollview addSubview:textField];
    [txtFieldArray addObject:textField];


    CGRect frame = bottomView.frame;
    frame.origin.y += textField.frame.size.height + 5;

    btnAdd = [[UIButton alloc] initWithFrame:CGRectMake(210, ([txtFieldArray count] *30), 20, 20)];
   frame.origin.y += btnAdd.frame.size.height +5;
    bottomView.frame = frame;
    textField.hidden = NO;


【问题讨论】:

【参考方案1】:

修改frame 变量后,将其设置为动画块中的按钮:

 [UIView animateWithDuration:0.2 animations:^
     [btnAdd setFrame:frame];
  
 completion:^(BOOL finished)
      //Do something on completion if you want
 ];

显然,您可以将动画持续时间 (0.2) 更改为您想要的任何值。要反转它,请执行相同操作,设置 frame CGRect 的 origin.y,并将其设置为上面动画块中的按钮。

【讨论】:

有助于知道错误是什么?刚刚修正了一个小错字,如果是这样的话。在(BOOL finished) 后面多了一个^ @QualityCoder 这对你有用吗?如果确实如此,请接受答案。谢谢。【参考方案2】:
[UIView animateWithDuration: delay: options: animations: completion:];

将是您的选择。您可以查看文档here。

【讨论】:

以上是关于如何沿 y 轴 iphone 向下移动按钮操作的主要内容,如果未能解决你的问题,请参考以下文章

尝试沿y轴移动时,任何精灵都会消失

使用 UIGestureRecognizer 沿 x 轴移动 UIImageView

沿X轴移动

unity中如何让物体以一定速度沿y轴旋转90度?

计算沿 y 轴的方向变化率(角度测量)?

如何在iOS中调整后退按钮的y轴