如何设置 UITextField 高度?

我正在使用 UITextField。我想增加它的高度,但我没有找到任何属性这样做。我怎么才能做到呢?

148178 次浏览

试试这个

UITextField *field = [[UITextField alloc] initWithFrame:CGRectMake(20, 80, 280, 120)];
CGRect frameRect = textField.frame;
frameRect.size.height = 100; // <-- Specify the height you want here.
textField.frame = frameRect;
UITextField *txt = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
[txt setText:@"Ananth"];
[self.view addSubview:txt];

最后两个参数是 width 和 height 你可以随意设置..。

Ios6的一个更新: 使用自动布局,即使你仍然不能从 Interface Builder 的大小检查器中设置 uitextField 的高度(至少在 Xcode 4.5 dp4中是这样) ,现在你可以在它上面设置一个高度限制,你可以从 Interface Builder 中编辑。

此外,如果通过代码设置帧的高度,自动布局可能会根据视图可能具有的其他约束重置它。

我知道这是一个老问题,但我只是想添加,如果你想轻松地改变一个 UITextField 的高度从内部 IB 然后简单地改变该 UITextfield 的边界类型,以任何其他类型的默认圆角类型。然后,您可以轻松地从编辑器内部拉伸或更改高度属性。

我终于找到解决办法了!

正如我们所发现的,IB 不允许我们更改圆角边框样式的高度。因此,将其更改为任何其他样式,并设置所需的高度。在代码中将边框样式改回。

textField.borderStyle = UITextBorderStyleRoundedRect;

按照以下两个简单的步骤,增加 UItextField的高度。

步骤1: 右键单击 XIB 文件并像“源代码”中那样打开它。

步骤2: 找到相同的 UITextfield源并设置所需的帧。

您可以使用这些步骤来更改任何苹果控件的框架。

如果你正在使用自动布局,那么你可以在故事板上这样做。

向文本字段添加高度约束,然后将高度约束常数更改为任何所需的值。步骤如下:

步骤1: 为文本字段创建高度约束

enter image description here

步骤2: 选择高度约束

enter image description here

步骤3: 更改高度约束的常量值

enter image description here

我对这个愚蠢问题的可悲贡献。在 IB 中将样式设置为无,这样就可以设置高度,然后在 IB 中将类设置为 UITextField的一个子类,该子类强制对样式进行四舍五入。

@interface JLTForcedRoundedRectTextField : UITextField
@end


@implementation JLTForcedRoundedRectTextField
- (void)awakeFromNib
{
self.borderStyle = UITextBorderStyleRoundedRect;
}
@end

它使我不必破解 XIB 文件或者在视图控制器中编写样式代码。

不能更改圆角直边框样式的高度。 要设置高度,只需选择 Xcode 圆形边框以外的任何边框样式:

enter image description here

可以使用 textfield 的 frame 属性更改框架 Like-Textfield. frame = CGRECTMake (x 轴,y 轴,宽度,高度)

这很简单。

yourtextfield.frame = CGRectMake (yourXAxis, yourYAxis, yourWidth, yourHeight);

将文本字段声明为全局属性并在代码中任何需要的位置更改其框架。

编码愉快!

  1. 选择不四舍五入的边框样式

enter image description here

  1. 设置你的高度

enter image description here

在你的视野中,看起来角是圆的

yourUITextField.borderStyle = UITextBorderStyleRoundedRect;

enter image description here

  1. 享受你的圆形和高大的 UITextField

如果要创建大量的 UITextFields,那么子类 UITextView和使用

-(void)setFrame:(CGRect)frame{
[self setBorderStyle:UITextBorderStyleRoundedRect];
[super setFrame:frame];
[self setBorderStyle:UITextBorderStyleNone];
}

这样你就可以打电话了
[customTextField setFrame:<rect>];

1)更改 InterfaceBuilder 中的边框样式。

enter image description here

2)之后你就可以改变尺寸了。

enter image description here

3)为 TextField 创建一个 IBOutlet,并在 viewDidLoad()中输入以下代码,以便将 BorderStyle 修改回来。

textField.borderStyle = UITextBorderStyleRoundedRect;

斯威夫特3:

textField.borderStyle = UITextBorderStyle.roundedRect

Swift 3

@IBDesignable
class BigTextField: UITextField {
override func didMoveToWindow() {
super.didMoveToWindow()
if window != nil {
borderStyle = .roundedRect
}
}
}

Interface Builder

  • BigTextField代替 UITextField
  • 改变 Border Stylenone

UITextField 的高度不能仅在属性检查器中调整 当它具有默认的圆角边框样式时,但添加一个 高度限制(加上任何其他限制 满足自动布局系统-往往只是使用添加缺失 约束) ,并调整约束将调整 如果不需要约束,则约束可以 被删除(清除约束) ,文本字段将保留在 调整后的高度。

非常有效。

在 Swift 3中使用:

yourTextField.frame.size.height = 30

我也有同样的问题。在这里尝试了一些解决方案,而不是做所有这些莫名其妙的东西。我发现仅仅设置高度约束就足够了。