繁体   English   中英

更改UITextField的宽度?

[英]Change UITextField width?

我目前正在我的应用程序中实现某种浏览器。 但是,我是iOS编程的新手,因此不知道如何以编程方式更改文本字段的宽度。 在当前的实现中,发生的事情是文本字段超过了导航控制器的后退按钮。 因此,我需要文本字段在左侧留一些空间。

有谁知道如何做到这一点? 这有可能吗?

/* Create the page title label */
UINavigationBar *navBar = self.navigationController.navigationBar;
CGRect labelFrame = CGRectMake(kMargin, kSpacer,
                               navBar.bounds.size.width - 2*kMargin, kLabelHeight);
UILabel *label = [[UILabel alloc] initWithFrame:labelFrame];
label.autoresizingMask = UIViewAutoresizingFlexibleWidth;
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont systemFontOfSize:12];
label.textAlignment = NSTextAlignmentCenter;
[navBar addSubview:label];
self.pageTitle = label;

/* Create the address bar */
CGRect addressFrame = CGRectMake(kMargin, kSpacer*2.0 + kLabelHeight,
                                 labelFrame.size.width, kAddressHeight);
UITextField *address = [[UITextField alloc] initWithFrame:addressFrame];
address.autoresizingMask = UIViewAutoresizingFlexibleWidth;
address.borderStyle = UITextBorderStyleRoundedRect;
address.font = [UIFont systemFontOfSize:17];
address.keyboardType = UIKeyboardTypeURL;
address.autocapitalizationType =UITextAutocapitalizationTypeNone;
address.autocorrectionType = UITextAutocorrectionTypeNo;
address.clearButtonMode = UITextFieldViewModeWhileEditing;
[address addTarget:self
            action:@selector(loadRequestFromAddressField:)
  forControlEvents:UIControlEventEditingDidEndOnExit];
[navBar addSubview:address];
self.addressField = address;

您可以通过修改UI元素的frame属性来控制UI元素的位置大小 (在本例中为UITextField

frameCGRect类型的矩形。 它由四个组件组成,这些组件指定其在屏幕坐标空间内的位置和大小。

前两个成分是: xy 这些代表矩形的位置。 屏幕的左上方是点(0,0),因此您的自定义xy值是相对于该点的。

在您的情况下,您需要修改视图的x属性,因为您描述了UITextField在左侧太远。 增加文本字段框架的x值会将文本字段向右移动。

您可以执行此操作,例如,在初始化UITextField之后(假设其变量名称为address ),调用执行以下操作:

address.frame = CGRectMake(address.frame.origin.x + 10.0, address.frame.origin.y, address.frame.size.width, address.frame.size.width)

这会将您的文本字段向右移动10点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM