Сброс UITextField Левое поле - PullRequest
3 голосов
/ 18 апреля 2011

Я хочу выровнять левое поле UITextField.text по 10Px.пожалуйста, предложите мне лучший способ ??То же самое в roundedRect TesxtField, где текст начинаются в 10 пикселях слева

достигли почти путем переопределения - (CGRect)textRectForBounds:(CGRect)bounds. теперь проблема заключается в том, когда TextField входит в режим редактирования, их левое поле сбрасывается в ноль .......

@implementation UITextField(UITextFieldCatagory)

- (CGRect)textRectForBounds:(CGRect)bounds {
    CGRect theRect=CGRectMake(bounds.origin.x+10, bounds.origin.y, bounds.size.width-10, bounds.size.height);
    return theRect;
}

Ответы [ 4 ]

4 голосов
/ 18 апреля 2011

Можете ли вы попробовать метод экземпляра UITextField drawTextInRect:?

Я думаю, вы можете использовать для этого свойство leftView.

Вы можете добавить leftView и rightView в поле UIText.Эти представления можно использовать для отображения значка, но если это пустое представление, оно просто займет место, что вам и нужно.

CGFloat leftInset = 5.0f;
UIView *leftView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, leftInset, self.bounds.size.height)];
self.leftView = leftView;
self.leftViewMode = UITextFieldViewModeAlways;
[leftView release];

См. Вопрос SO Пользовательский фоновый вид UITextField исмещение текста

3 голосов
/ 18 апреля 2011

Вы пробовали

-(CGRect)editingRectForBounds(CGRect)bounds;
2 голосов
/ 16 января 2013

Переопределите реализацию супер и настройте результаты. Таким образом, вам не нужно рассчитывать с leftView и rightView (если вы их используете).

- (CGRect)textRectForBounds:(CGRect)bounds {
    CGRect ret = [super textRectForBounds:bounds];
    ret.origin.x = ret.origin.x + 10;
    ret.size.width = ret.size.width - 20;
    return ret;
}

- (CGRect)editingRectForBounds:(CGRect)bounds {
    return [self textRectForBounds:bounds];
}
0 голосов
/ 04 апреля 2016

быстрое:

    let leftView:UIView = UIView(frame: CGRectMake(0, 0, 30, 1))
    leftView.backgroundColor = UIColor.clearColor()
    my_text_field.leftView = leftView;
    my_text_field.leftViewMode = UITextFieldViewMode.Always;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...