[英]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
。
frame
是CGRect
類型的矩形。 它由四個組件組成,這些組件指定其在屏幕坐標空間內的位置和大小。
前兩個成分是: x
和y
。 這些代表矩形的位置。 屏幕的左上方是點(0,0),因此您的自定義x
和y
值是相對於該點的。
在您的情況下,您需要修改視圖的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.