autoresizingMask изменяет размер рисуемой UILabel, просто устанавливая - PullRequest
2 голосов
/ 26 апреля 2010

У меня есть несколько пользовательских UITableViewCells, которые делаются программно по мере необходимости, я хочу, чтобы они меняли размер. Однако, когда я добавляю маски автоматического изменения размера к UILabels в ячейках, они, кажется, растягиваются шире при привязке к левой стороне.

// This works fine
UILabel *aField = [[UILabel alloc] initWithFrame:CGRectMake(60, 2, tableView.frame.size.width - 83, 21)];
UILabel *bField = [[UILabel alloc] initWithFrame:CGRectMake(60, 20, tableView.frame.size.width - 154, 21)];
UILabel *cField = [[UILabel alloc] initWithFrame:CGRectMake(0, 2, tableView.frame.size.width, 21)];
UILabel *dField = [[UILabel alloc] initWithFrame:CGRectMake(tableView.frame.size.width - 116, 11, 93, 21)];
UILabel *eField = [[UILabel alloc] initWithFrame:CGRectMake(tableView.frame.size.width - 116, 11, 93, 21)];

// But when I add this, it draws like the tableview is actually much wider than it really is
aField.autoresizingMask = UIViewAutoresizingFlexibleWidth;
bField.autoresizingMask = aField.autoresizingMask;
cField.autoresizingMask = UIViewAutoresizingFlexibleWidth;
dField.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
eField.autoresizingMask = dField.autoresizingMask;

Таким образом, когда нижняя часть кода не существует, все работает, как и ожидалось, но когда это происходит, многие метки начинают падать с правой стороны или растягиваться там, где их центры находятся далеко вправо. Я пропускаю что-то простое?

...