Как найти конечные координаты UILabel? - PullRequest
1 голос
/ 02 марта 2012

Так что я динамически добавляю UILabels к представлению по «временной шкале». То, что я хотел бы сделать, это выяснить, как поместить начальные координаты следующей UILabel через пару пикселей после того, где была последняя. Мне трудно понять, где закончился последний. Я посмотрел на несколько подобных вопросов, и я не могу понять, как это сделать. Все происходит в цикле for, поэтому я могу обновлять переменную xcoordinate каждый цикл, но мне нужно знать, как получить размер метки. У кого-нибудь есть идеи? Я попробовал это, но это не сработало:

UILabel *title = [[UILabel alloc]initWithFrame:CGRectMake(labelsXpoint, 
                                                        topLabelYpoint,
                                                        labelWidth,
                                                        20)];

    CGSize labelSize = [title.text sizeWithFont:title.font constrainedToSize:title.frame.size  
                             lineBreakMode:title.lineBreakMode];
labelsXpoint += labelSize.width;

Ответы [ 3 ]

1 голос
/ 02 марта 2012

Я бы установил кадр после того, как вы измените метки Xpoint. Что-то вроде:

UILabel *title = [[UILabel alloc]init];

CGSize labelSize = [title.text sizeWithFont:title.font constrainedToSize:title.frame.size lineBreakMode:title.lineBreakMode];
labelsXpoint += labelSize.width;

title.frame = CGRectMake(labelsXpoint, topLabelYpoint, labelWidth, 20);
1 голос
/ 03 марта 2012

Вы можете использовать функции: CGRectGetMaxX и CGRectGetMaxY:

CGPoint topRight = CGPointMake(CGRectGetMaxX(title.frame), title.frame.origin.y);
CGPoint bottomRight = CGPointMake(CGRectGetMaxX(title.frame), CGRectGetMaxY(title.frame));
1 голос
/ 02 марта 2012

Вот как бы вы получили верхнюю правую и нижнюю правую координаты заголовка:

CGPoint topRight = CGPointMake(title.frame.origin.x + title.frame.size.width, title.frame.origin.y);
CGPoint bottomRight = CGPointMake(title.frame.origin.x + title.frame.size.width, title.frame.origin.y + title.frame.size.height);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...