Преобразование вращения для UITextField, но текст смещен - PullRequest
2 голосов
/ 19 октября 2010

Я пытаюсь повернуть UITextField на 90 градусов. Он идеально вращается ... но текст внутри UITextField смещен. Я не могу найти причину этого.

Ответы [ 3 ]

2 голосов
/ 06 января 2011
[InputField setTransform:CGAffineTransformMakeRotation(-M_PI / 2.0)];
    [InputField setContentVerticalAlignment:UIControlContentVerticalAlignmentTop];
    [InputField setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];

у меня работает!

1 голос
/ 19 октября 2010

В чем именно проблема? Когда я применяю CGAffineTransformation к TextField, все выглядит нормально.

myTextField.transform = CGAffineTransformMakeRotation(M_PI_2);
0 голосов
/ 07 декабря 2011

Вместо того, чтобы устанавливать вертикальное и горизонтальное выравнивание (которое создает окно редактирования вне центра, наблюдаемое выше), вы можете обработать прямоугольник редактирования вручную.Я переопределил editRectForBounds следующим образом.Это центрирует прямоугольник редактирования независимо от поворота:

-(CGRect)editingRectForBounds:(CGRect)bounds
{
    // how tall is the font?
    CGFloat fontHeight = [self.text sizeWithFont:self.font].height;

    // compute pad 
    CGFloat pad = (bounds.size.height - fontHeight) / 2.0f;

    // return rect with pad on top and bottom
    return CGRectMake(bounds.origin.x, bounds.origin.y + pad, bounds.size.width, fontHeight);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...