UITextField не занимает всю ширину экрана

Я использую UITextField и UIButton, как вы можете видеть на этом снимке экрана:

введите здесь описание изображения

Иногда кнопку «тест» нужно отключить, поэтому я отключаю ее с помощью этого кода:

    [_hButton setEnabled:NO];
    [_hButton setHidden: true]; 

Но проблема в том, что UITextField не занимает всю ширину экрана, как вы можете видеть здесь:

введите здесь описание изображения

Это настройки из UITextField в моей раскадровке:

введите здесь описание изображения

Любая идея, как я могу это исправить?


person nonuma    schedule 24.04.2013    source источник


Ответы (3)


Когда вы делаете это [_hButton setEnabled:NO]; [_hButton setHidden: true];, вам нужно изменить ширину текстового поля.

Ваш код должен быть..

CGRect oldFrame = yourTextField.frame;
CGRect frameNew = CGRectMake(oldFrame.origin.x,oldFrame.origin.y,oldFrame.size.width + _hbutton.frame.size.width,oldFrame.size.height);
yourTexField.frame = frameNew;

Когда вы захотите вернуть это, просто выполните обратный расчет.

person Mani    schedule 24.04.2013

Хоть кнопка и скрыта, но она все равно есть. Вы должны полностью удалить его из представления для желаемого эффекта [_hButton removeFromSuperview];

person Dobroćudni Tapir    schedule 24.04.2013
comment
Если _hButton хочет снова включить, значит, достаточно ли addSubview? это будет работать? - person Mani; 24.04.2013
comment
Не уверен на 100%, но думаю будет. Также я забыл сказать, что ему все равно нужно будет выполнить ручную настройку фрейма в текстовом поле, поэтому я думаю, что ваш ответ лучше :) - person Dobroćudni Tapir; 24.04.2013
comment
Хорошо, хорошо, если ваш ответ будет работать хорошо, это хороший способ. Это я спросил.. :) - person Mani; 24.04.2013

UITextView не изменяет размер, так как кнопка все еще там, она просто не видна. После того, как вы скроете кнопку, отрегулируйте рамку UItextView вручную.

person Jeepston    schedule 24.04.2013