簡體   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