Yanıtlar:
CGRect frameRect = textField.frame;
frameRect.size.height = 100; // <-- Specify the height you want here.
textField.frame = frameRect;
Yuvarlatılmış dikdörtgen kenarlık stilinin yüksekliğini değiştiremezsiniz. Yüksekliği ayarlamak için, Xcode'da yuvarlak kenarlık dışında herhangi bir kenarlık stilini seçin:
Sonunda bunun düzeltmesini buldum!
Bulduğumuz gibi, IB, yuvarlak köşe bordür stilinin yüksekliğini değiştirmemize izin vermiyor. Bu yüzden diğer stillerden herhangi birine değiştirin ve istediğiniz yüksekliği ayarlayın. Kodda sınır stilini geri değiştirin.
textField.borderStyle = UITextBorderStyleRoundedRect;
viewWillLayoutSubviews
. leftView
Metin alanına bir resim ve biraz metin ekledim ve bu yapıldığında viewDidLoad
ikisi de tuhaf bir şekilde uzanıyor.
textField.borderStyle = .RoundedRect
Otomatik Yerleşim kullanıyorsanız, bunu Hikaye panosunda yapabilirsiniz.
Metin alanına bir yükseklik sınırlaması ekleyin, ardından yükseklik sınırlaması sabitini istediğiniz herhangi bir değere değiştirin. Adımlar aşağıda gösterilmiştir:
1. Adım: Metin alanı için bir yükseklik sınırlaması oluşturun
Adım 2: Yükseklik Kısıtlamasını Seçin
Adım 3: Yükseklik Kısıtlamasının sabit değerini değiştirin
borderStyle
herhangi bir değere ayarlayın . Editor -> Size to Fit Content
Düzenin işini yapması için kullanın . UITextField
Yüksekliğini kontrol etmek için mülk denetçisini kullanın . Yükseklik sınırlamanızı ayarlamak için bunu kullanın ve şimdi borderStyle
arka tarafı yuvarlatılmış olana dönüştürebilirsiniz.
1.) InterfaceBuilder'da kenarlık stilini değiştirin.
2.) Bundan sonra boyutunu değiştirebilirsiniz.
3.) TextField'ınıza bir IBOutlet oluşturun viewDidLoad()
ve BorderStyle'ı tekrar değiştirmek için aşağıdaki kodu hesabınıza girin .
textField.borderStyle = UITextBorderStyleRoundedRect;
Swift 3:
textField.borderStyle = UITextBorderStyle.roundedRect
Görünümünüzde WillAppear köşeleri yuvarlak olarak ayarlayın
yourUITextField.borderStyle = UITextBorderStyleRoundedRect;
Bu iki basit adımı izleyin ve boyunuzu artırın UItextField
.
Adım 1: XIB dosyasına sağ tıklayın ve "Kaynak Kod" daki gibi açın.
Adım 2: Aynı UITextfield
kaynağı bulun ve çerçeveyi istediğiniz gibi ayarlayın.
Herhangi bir elma kontrolünün çerçevesini değiştirmek için bu adımları kullanabilirsiniz.
İOS 6 için bir güncelleme: Otomatik düzen kullanarak, Arabirim Oluşturucu'daki Boyut Denetçisinden UITextField'in yüksekliğini hala ayarlayamasanız bile (en azından Xcode 4.5 DP4'ten itibaren), artık bir Yükseklik kısıtlaması ayarlamak mümkündür. Arayüz Oluşturucu'dan düzenleyebileceğiniz.
Ayrıca, çerçevenin yüksekliğini koda göre ayarlıyorsanız, otomatik düzen, görünümünüzün sahip olabileceği diğer kısıtlamalara bağlı olarak çerçeveyi sıfırlayabilir.
Bunun eski bir soru olduğunu biliyorum, ancak bir UITextField'in yüksekliğini IB'nin içinden kolayca değiştirmek istiyorsanız, o zaman basitçe bu UITextfield'ın kenarlık türünü varsayılan yuvarlak köşe türü dışında bir şeyle değiştirmek istedim. Ardından, düzenleyicinin içinden yükseklik niteliklerini kolayca uzatabilir veya değiştirebilirsiniz.
@IBDesignable
class BigTextField: UITextField {
override func didMoveToWindow() {
super.didMoveToWindow()
if window != nil {
borderStyle = .roundedRect
}
}
}
UITextField
ile BigTextField
.Border Style
To none
.Bu aptal soruna acınası katkım. IB'de stili hiçbiri olarak ayarlayın, böylece yüksekliği ayarlayabilirsiniz, ardından IB'de sınıfı UITextField
, stili yuvarlatmaya zorlayan bir alt sınıf olacak şekilde ayarlayın .
@interface JLTForcedRoundedRectTextField : UITextField
@end
@implementation JLTForcedRoundedRectTextField
- (void)awakeFromNib
{
self.borderStyle = UITextBorderStyleRoundedRect;
}
@end
XIB dosyasını kırmaktan veya görünüm denetleyicime stil kodu yazmak zorunda kalmamı engelledi.
Bir UITextField'ın yüksekliği, Attributes Inspector'da yalnızca varsayılan yuvarlatılmış köşeler kenarlık stiline sahip olduğunda ayarlanamaz, ancak buna bir yükseklik kısıtlaması (artı otomatik düzen sistemini tatmin etmek için gereken diğer kısıtlamalar - genellikle sadece Eksik Kısıtlamaları Ekle'yi kullanarak) eklenir ve kısıtlamanın ayarlanması metin alanının yüksekliğini ayarlayacaktır. Kısıtlama istemiyorsanız, kısıtlamalar kaldırılabilir (Kısıtlamaları Temizle) ve metin alanı ayarlanan yükseklikte kalacaktır.
Tıkır tıkır çalışıyor.
UITextField *txt = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
[txt setText:@"Ananth"];
[self.view addSubview:txt];
Son iki argüman genişlik ve yüksekliktir, dilediğiniz gibi ayarlayabilirsiniz ...
Metin alanı gibi çerçeveyi değiştirmek için metin alanının çerçeve özelliğini kullanabilirsiniz. Çerçeve = CGRECTMake (x ekseni, y ekseni, genişlik, yükseklik)
Bu oldukça basit.
yourtextfield.frame = CGRectMake (yourXAxis, yourYAxis, yourWidth, yourHeight);
Metin alanınızı küresel bir özellik olarak bildirin ve kodunuzda yapmak istediğiniz yerde çerçevesini değiştirin.
Mutlu Kodlama!
Birçoğunu oluşturuyorsanız, s UITextFields
alt sınıflarına daha hızlı geçebilir UITextView
ve setFrame yöntemini geçersiz kılabilir.
-(void)setFrame:(CGRect)frame{
[self setBorderStyle:UITextBorderStyleRoundedRect];
[super setFrame:frame];
[self setBorderStyle:UITextBorderStyleNone];
}
Bu şekilde arayabilirsin
[customTextField setFrame:<rect>];