【发布时间】:2012-01-28 07:39:09
【问题描述】:
我正在使用UITextField。我想增加它的高度,但我还没有找到任何属性来做到这一点。我怎样才能做到这一点?
【问题讨论】:
标签: iphone ios xcode uitextfield
我正在使用UITextField。我想增加它的高度,但我还没有找到任何属性来做到这一点。我怎样才能做到这一点?
【问题讨论】:
标签: iphone ios xcode uitextfield
您不能更改圆角矩形边框样式的高度。 要设置高度,只需在 Xcode 中选择圆形边框以外的任何边框样式:
【讨论】:
我终于找到了解决方法!
正如我们所发现的,IB 不允许我们更改圆角边框样式的高度。因此,将其更改为任何其他样式并设置所需的高度。在代码中将边框样式改回来。
textField.borderStyle = UITextBorderStyleRoundedRect;
【讨论】:
viewWillLayoutSubviews 内完成的。我在 leftView 的文本字段和一些文本中添加了一张图片,当在 viewDidLoad 中完成此操作时,它们都奇怪地拉伸了。
textField.borderStyle = .RoundedRect
CGRect frameRect = textField.frame;
frameRect.size.height = 100; // <-- Specify the height you want here.
textField.frame = frameRect;
【讨论】:
如果您使用自动布局,那么您可以在故事板上进行。
向文本字段添加高度约束,然后将高度约束常量更改为任何所需值。步骤如下:
第 1 步:为文本字段创建高度限制
第 2 步:选择高度约束
第 3 步:更改高度约束的常量值
【讨论】:
borderStyle 设置为除圆角的任何值。使用Editor -> Size to Fit Content 让布局做它的事情。使用UITextField 上的属性检查器检查其高度。使用它来设置您的高度限制,现在您可以将borderStyle 改回圆形。
按照这两个简单的步骤,增加您的UItextField 的高度。
第一步:右击XIB文件,像“源代码”一样打开。
第 2 步:找到相同的 UITextfield 源并根据需要设置框架。
您可以使用这些步骤来更改任何苹果控件的框架。
【讨论】:
iOS 6 的更新:使用自动布局,即使您仍然无法从 Interface Builder 中的 Size Inspector 设置 UITextField 的高度(至少从 Xcode 4.5 DP4 开始),现在可以设置它的高度限制,您可以从 Interface Builder 编辑它。
此外,如果您通过代码设置框架的高度,则自动布局可能会根据您的视图可能具有的其他约束来重置它。
【讨论】:
我知道这是一个老问题,但我只是想补充一下,如果您想从 IB 内部轻松更改 UITextField 的高度,然后只需将该 UITextfield 的边框类型更改为默认圆角类型以外的任何内容。然后,您可以从编辑器内部轻松拉伸或更改高度属性。
【讨论】:
@IBDesignable
class BigTextField: UITextField {
override func didMoveToWindow() {
super.didMoveToWindow()
if window != nil {
borderStyle = .roundedRect
}
}
}
UITextField 替换为BigTextField。Border Style
到none。【讨论】:
我对这个愚蠢问题的可悲贡献。在 IB 中将样式设置为 none,以便您可以设置高度,然后在 IB 中将类设置为 UITextField 的子类,强制样式为圆角矩形。
@interface JLTForcedRoundedRectTextField : UITextField
@end
@implementation JLTForcedRoundedRectTextField
- (void)awakeFromNib
{
self.borderStyle = UITextBorderStyleRoundedRect;
}
@end
它让我不必破解 XIB 文件或将样式代码写入我的视图控制器。
【讨论】:
UITextField 的高度仅在 Attributes Inspector 中不可调整 当它具有默认的圆角边框样式时,但添加了 高度约束(加上需要的任何其他约束 满足自动布局系统 - 通常只需使用 Add Missing 约束),调整约束将调整 文本字段的高度。如果你不想要约束,约束可以 被删除(清除约束)并且文本字段将保留在 调整高度。
像魅力一样工作。
【讨论】:
在 Swift 3 中使用:
yourTextField.frame.size.height = 30
【讨论】:
试试这个
UITextField *field = [[UITextField alloc] initWithFrame:CGRectMake(20, 80, 280, 120)];
【讨论】:
UITextField *txt = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
[txt setText:@"Ananth"];
[self.view addSubview:txt];
最后两个参数是宽度和高度,你可以随意设置...
【讨论】:
你可以使用 textfield 的 frame 属性来改变 frame Like-Textfield.frame=CGRECTMake(x轴,y轴,宽度,高度)
【讨论】:
这很简单。
yourtextfield.frame = CGRectMake (yourXAxis, yourYAxis, yourWidth, yourHeight);
将您的文本字段声明为全局属性,并在您的代码中任意更改其框架。
编码愉快!
【讨论】:
如果您要创建大量 UITextFields,则可以更快地将 UITextViews 子类化并使用
-(void)setFrame:(CGRect)frame{
[self setBorderStyle:UITextBorderStyleRoundedRect];
[super setFrame:frame];
[self setBorderStyle:UITextBorderStyleNone];
}
这样你就可以打电话[customTextField setFrame:<rect>];
【讨论】:
我遇到了同样的问题。在这里尝试了一些解决方案,而不是做所有这些笨拙的事情。我发现只设置高度约束就足够了。
【讨论】: