Custom UITextField
Jak miałbym stworzyć UITextField
taki jak ten na tym obrazku?
6 answers
Prawdopodobnie chcesz użyć background
i borderStyle
Właściwości UITextField
. Ustawienie borderStyle
jako UITextBorderStyleNone
i utworzenie niestandardowego obrazu tła, który ma być rozciągnięty i użyty jako właściwość background
byłoby jednym z podejść.
Proponuję spojrzeć na te właściwości w UITextField class reference.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-23 18:12:43
Można to zrobić znacznie lepiej i prościej z rozciągliwym obrazem:
UIImage *fieldBGImage = [[UIImage imageNamed:@"input.png"] stretchableImageWithLeftCapWidth:20 topCapHeight:20];
[myUITextField setBackground:fieldBGImage];
Potraktuj tło pola tekstowego jako podzielone na trzy sekcje. Środkowy odcinek, który można rozciągnąć i czapki na końcach. Utwórz obraz, który musi być wystarczająco długi, aby zawierał jeden piksel tej powtarzającej się sekcji( bardzo krótkie pole tekstowe), a następnie utwórz z niego rozciągliwy obraz za pomocą stretchableImageWithLeftCapWidth: topCapHeight
. Przekaż szerokość lewej zaślepki do ' leftCapWidth."You can make it stretch również w pionie, ale jeśli obraz tła ma taką samą wysokość jak pole tekstowe, nie będzie to miało efektu.
Jeśli znasz skalowanie 9 plasterków we Flashu lub Illustratorze, to jest to dokładnie to samo pojęcie, z tym, że środkowe sekcje mają tylko jeden piksel szerokości/wysokości.
Zaletą tego jest to, że nie musisz się martwić o skalowanie wielu warstw obiektów razem i możesz zmienić rozmiar pól tekstowych w dowolnym momencie, a tło pozostanie w takcie. Działa na innych elementach też!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-13 01:47:51
Możesz to zrobić przez:
yourTextField.borderStyle = UITextBorderStyleNone;
yourTextField.background = [UIImage imageNamed:@"email-input.png"];
I jeśli chcesz dodać margines do tekstu wewnątrz pola tekstowego, możesz to zrobić poprzez:
// Setting Text Field Margins to display the user entered text Properly
UIView *paddingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 5, 20)];
yourTextField.leftView = paddingView;
yourTextField.leftViewMode = UITextFieldViewModeAlways;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-04 08:40:31
Można to również zrobić poprzez Interface Builder.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-10 14:11:36
Wystarczy użyć poniższej linii i powinno działać
Textfield_name.background = [UIImage imageNamed: @ " yourImage.png"];
Tutaj "ty" jest obrazkiem tła, który chcesz ustawić...
Jednak będzie to działać tylko wtedy, gdy twój przycisk nie jest okrągły button.So, możesz zmienić typ przycisku w Kreatorze interfejsów lub możesz użyć
Textfield_name.borderstyle = UITextBorderStyleNone or UITextBorderStyleBezel
I TY R gud2go....!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-23 18:27:34
Weź uiimageview ustaw jego właściwość image na obraz, który chcesz jako tło uitextfield. A na szczycie tego interfejsu uimageview umieścić uitextfield z borderstyle none. Można to zrobić bezpośrednio w interface builder.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-16 07:05:11