如何移动按钮动作ios

Posted

技术标签:

【中文标题】如何移动按钮动作ios【英文标题】:How to move button action ios 【发布时间】:2013-04-11 09:41:34 【问题描述】:

我想在按下时改变按钮的位置,它应该再次向下移动并在按住时重新开始,请告诉我该怎么办?

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;

bottomView.frame = frame;
textField.hidden = NO;

【问题讨论】:

这段代码有什么问题? 在这段代码下面我想添加按钮,当添加文本字段时,按钮也会改变位置 你能告诉我如何以编程方式改变按钮的位置吗? 是的,就像你改变文本字段一样,你可以改变按钮的位置,通过改变它的框架 我这样做了,但它没有改变位置,你能解释一下你的答案吗? 【参考方案1】:

只给出你描述的 sn-p 中按钮的框架。

例如,

<button_object>.frame =
CGRectMake(textField.frame.origin.x,textField.frame.origin.y +
x,textField.size.width,textField.size.height);


Where X = the difference upto which you want to add the button after
textfield. For ex, 44 or 50 or so on..

享受编程!

【讨论】:

【参考方案2】:

你可以为按钮分配一个标签

UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom];
[btn setTag:100];
[btn addTarget:self action:@selector(moveButtonDown) forControlEvents:UIControlEventTouchUpInside];

并且每当单击按钮时,可以通过获取按钮的引用来更改按钮的框架。在下面的代码中,我将按钮向下移动了 20 个像素。您可以将此值更改为您想要的任何值。

 -(void)moveButtonDown

    UIButton *btn=(UIButton *)[self.view viewWithTag:100];
    float y=btn.frame.origin.y;
    y+=20;
    [btn setFrame:CGRectMake(btn.frame.origin.x, y, btn.frame.size.width, btn.frame.size.height)];

【讨论】:

【参考方案3】:

在创建 UIButton 并像 UITextField 一样设置它的框架后,你应该使用按钮的setFrame: 方法来改变它的位置。

如果你想用按钮改变位置,首先创建一个-(IBAction *)buttonPressed:(id)sender方法并在其中设置按钮的新位置。然后在创建按钮的地方添加[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside] 方法。

【讨论】:

在 buttonPressed 方法中使用 [((UIButton *)sender) setFrame:newFrame] 方法 设置新框架时,按钮的位置会更改为新框架。你还想做什么?【参考方案4】:

您必须通过以下方式修改您的代码:

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

bottomView.frame = frame;
textField.hidden = NO;

【讨论】:

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

如何使jbutton动作以移动另一帧

ios键盘“Go”按钮的动作

按下按钮时如何更改控制器,iOS?

Sprite Kit iOS 中的慢动作

SwiftUI捕获键盘提交动作在iOS15之前和之后的兼容实现

如何在 SliverAppBar 上制作一个动作按钮(不是真的,它只是一个文本框)