Я предполагаю, что под сеткой вы подразумеваете что-то вроде трамплина домашнего экрана, где каждый значок представляет собой отдельный вид.
Я также предполагаю, что вы создали экземпляр UIView в IB, настроили все соответствующие соединения и указатель в вашем коде.
Затем в вашем контроллере, который владеет UIScrollView (и это то, что я хотел бы сделать и делал раньше), проходит цикл по всем вашим UIViews (после того, как вы скопируете шаблон, созданный в xib; снова я при условии, что здесь ваш вопрос не очень хорошо определен), установите их фрейм с помощью простой математики, а затем добавьте их в UIScrollView с помощью addSubview. В конце убедитесь, что для вашего contentSize UIScrollView задано соответствующее значение.
Вот пример:
-(void)displayNewView:(NewView *)newIcon {
//create view object
NewViewController *newVC = [[NewViewController alloc] init];
//modify the new UIView so it shows the correct state
newVC.networkHost = newIcon;
//add view object to screen
[self.scrollView addSubview:newVC.view];
//release a retain on the object
[newVC release];
//reposition the view object
newVC.view.frame = CGRectMake((self.viewsOnDisplay%3*104), (self.viewsOnDisplay/3*105+6), 106, 95);
//resize the view if necessary
self.scrollView.contentSize = CGSizeMake(320.0, (self.viewsOnDisplay/3*105+96+6));
}
В строке, где представление переставлено, происходит математическая сумма, и вместо того, чтобы показывать вам кучу символов, я взял строку из одного из моих приложений, и я скажу вам, что означает каждое число (все они отличается, так что это удобный способ их различить):
3: number of views per row
104: horizontal spacing between views
105: vertical spacing between views
6: space at the very top of the UIScrollView (a header if u will)
106: view width
95: view height
Поскольку это метод, который просто добавляет один UIView на экран, он получает доступ к локальному синтезированному свойству self.viewsOnDisplay
, чтобы узнать, сколько видов уже отображено, поэтому он знает, куда поместить следующий. Если бы вы делали это как часть цикла for или чего-то еще, это было бы просто i
(или как называется счетчик var). Имейте в виду, что ваш счетчик должен начинаться с 0.