如何将设置为 uitextfield 的框架更改为 uibutton

Posted

技术标签:

【中文标题】如何将设置为 uitextfield 的框架更改为 uibutton【英文标题】:how to change frame set to uitextfield to uibutton 【发布时间】:2015-03-30 05:35:58 【问题描述】:

大家好,我打了一个模块 24 小时无法获得任何输出。让我告诉我我的问题是什么,我有一个文本字段和一个按钮。想象一下,我将我的文本字段放在第一顺序,我将按钮放在第二顺序 但是对于一些更改,我需要将文本字段的位置替换为按钮位置,并将按钮位置替换为文本字段,即现在按钮应该是第一顺序,文本字段应该移动到第二顺序 任何人都可以更新它的代码

我的实际文本框框架是:origin = (x=16,y=139) size =(width=288,height=49)。按钮框架为 = (x=16,y=189) 大小 = (width=288,height=47)

我的更改框架集的代码

Textfield = [[UITextField alloc]initWithFrame:CGRectMake(16, 189, 288, 47)];
Button = [[UIButton alloc]initWithFrame:CGRectMake(16, 139, 288, 49)];
[self.view addSubview:TextField];
[self.view addSubview:Button];

【问题讨论】:

我建议您分享您的代码/屏幕截图,以获得更好的 SO 用户响应。 仍然不完整的代码/问题。您想用按钮替换您的 textField,反之亦然吗?在这种情况下,为什么不能更新 textField 和按钮对象的框架? 我不知道如何将位置从文本字段更改为 uibutton 位置 你可以更新框架,一旦你知道你想要改变两个对象的位置的条件。 我希望你能提供代码,如何按第二顺序移动我的文本字段以及如何在文本字段上方移动我的按钮 【参考方案1】:

为此目的 1) 将UITextfield 合帧CGRect

CGRect Tempframe;
Tempframe = Button.frame;  

2) 将按钮框架设置为文本框框架

Button.translatesAutoresizingMaskIntoConstraints = YES;
Button.frame = Textfield.frame;

3)最后将 Tempframe 设置为你的 textfeild 框架

Textfield.translatesAutoresizingMaskIntoConstraints = YES;
Textfield.frame = Tempframe

【讨论】:

感谢您的示例代码@Agent,但它无法正常工作并获得相同的视图 兄弟首先我使用故事板并手动使用文本字段和按钮的插座有没有办法改变位置 很高兴它有帮助...... :) 解释:上一个无法正常工作,因为您的控件具有自动布局,之后我们使用“translatesAutoresizingMaskIntoConstraints”将其转换为约束

以上是关于如何将设置为 uitextfield 的框架更改为 uibutton的主要内容,如果未能解决你的问题,请参考以下文章

单个 UITextField 中的多种字体

iOS 开发:如何在点击 UITableViewCell 时将其更改为可编辑的 UITextField?

如何在Swift中将UITextField键盘类型更改为电子邮件

如何将 .NET 标准库更改为 .NET 框架库?

我正在通过使用 UITextField 获取输入来使用字符串中的特殊字符进行 api 调用,但 alamofire 会自动将其更改为一些代码

防止 UITextField 在键入时更改宽度