如何移动按钮动作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的主要内容,如果未能解决你的问题,请参考以下文章