[myScrollView addSubview:myLabel];
[myLabel release];
Добавление представления происходит в родительском (контейнерном) представлении, а не в добавляемом представлении.
Кроме того, как только оно добавлено в суперпредставление, оно становится его владельцем, и вы должны его освободить.
РЕДАКТИРОВАТЬ: OP спрашивает: «Но что произойдет, когда я создаю 10 из них, они расположены друг под другом?»
Нет.Каждый подкласс UIView (как UIScrollView, так и UILabel) имеет свойство .frame
, которое содержит структуру CGRect.Это поле определяет положение и размер объекта.
Итак:
UILabel *one = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 30)];
UILabel *two = [[UILabel alloc] initWithFrame:CGRectMake(0, 35, 200, 30)];
UILabel *three = [[UILabel alloc] initWithFrame:CGRectMake(0, 70, 200, 30)];
[myScrollView addSubview:one];
[myScrollView addSubview:two];
[myScrollView addSubview:three];
[one release];
[two release];
[three release];
Это поместит три метки UILabel, каждая из которых шириной 200 пикселей и высотой 30 пикселей в представлении прокрутки, всеони совпадают с левой стороной этого вида, один справа вверху, один на 35 пикселей вниз, один на 70 пикселей вниз.
Если содержимое UIScrollView больше, чем .frame
UIScrollView, вы устанавливаете свойство .contentSize
(снова CGRect), которое определяет область содержимого, которое вы хотите прокрутить.