У меня есть следующий код, чтобы создать представление и поместить его в scrollview для разрешения подкачки страниц
код хорошо работает однако, что я не мог сделать, загружает представления из файла пера
другими словами, я хочу использовать "initWithNibName" вместо "initWithFrame"?
- (void)createPageWithColor:(UIColor *)color forPage:(int)page
{
UIView *newView = [[UIView alloc] initWithFrame:CGRectMake(0, 300,400)];
newView.backgroundColor = color;
[scrollView addSubview:newView];
}
Большое спасибо
Я думаю, что вам не хватает того, что вы можете установить фрейм вашего нового UIView после загрузки пера. Время загрузки / инициализации - не единственный ваш шанс в этом. Я также разбиваю функцию загрузки на части в приведенном ниже коде, чтобы вам было легче увидеть, что происходит.
Обратите внимание:
NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"yournib"
owner:self
options:nil];
//I'm assuming here that your nib's top level contains only the view
//you want, so it's the only item in the array.
UIView *myView = [nibContents objectAtIndex:0];
myView.frame = CGRectMake(0,0,300,400); //or whatever coordinates you need
[scrollview addSubview:myView];
Не забывайте, что для того, чтобы этот UIScrollView действительно прокручивался, вам необходимо установить его свойство contentSize на размер товаров внутри него, который, вероятно, больше, чем свойство .frame самого представления прокрутки. .
Попробуйте что-нибудь вроде этого (адаптировано из «Поваренной книги разработчиков iPhone», стр. 174):
UIView *newView = [[[NSBundle mainBundle] loadNibNamed:@"yournib" owner:self options:nil] lastObject];
Предполагается, что в вашем .xib есть единственный объект представления, но вы можете изменить его, если захотите. .xib сложнее.