UITableView Расположение ячеек - PullRequest
0 голосов
/ 05 апреля 2011

Я пытаюсь изменить внешний вид ячеек таблицы, добавив столбцы.Я знаю, что обычный просмотр таблицы не позволяет этого.Может кто-нибудь направить меня в правильном направлении, чтобы добиться чего-то похожего на прикрепленное изображение?Основной функциональностью является наличие сетки ячеек.3x3 и любая из 9 ячеек может быть нажата, и она открывает другую страницу.это похоже на средство выбора изображений, но вместо изображений это будут ячейки с субтитрами и т. д.

http://www.bronron.com/apps/IpadMenu.jpg

Есть идеи?

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 05 апреля 2011

Я бы порекомендовал вам попробовать для этого использовать UIScrollView вместо UITableView.

Каждый элемент в вашем меню может быть UIImageView или UIButton, который вы добавляете как подпредставления к вашему UIScrollView.

Следующий код может быть вставлен в viewDidLoad внутри вашего контроллера представления и предполагает, что вы настроили UISCrollView в построителе интерфейса, в противном случае вам нужно будет выделить представление прокрутки внутри viewDidLoad.

Код добавит переменное количество пунктов меню в UIScrollView с двумя столбцами.Чтобы справиться с пользовательским вводом, вы можете сделать все элементы меню UIButtons, которые вызывают связанные методы IBAction, или в этом случае menuItems являются вашими представлениями, поэтому вы можете определить, к какому пункту меню пользователь прикасается, глядя на местоположение касания пользователя в пределах прокруткипросмотреть, а затем выполнить соответствующие действия, основанные на этом.

UIImageView *menuItem = nil;

//The x and y view location coordinates for your menu items 
int x = 0, y = 0;

//The number of items you want in your menu 
int numOfItemsToAdd = 10; 

//The height and width of your menu items
int menuItemHeight = 50, menuItemWidth = 50; 

//The content seize needs to refelect the number of menu items that will be added
//The hieght of the ocnten size is calclutated by multiplying the menu item height by the number of 
//menu items devided by the number of menu items that fit across in the width of the view. 
[scrollView setContentSize:CGSizeMake(320, menuItemHeight*numOfItemsToAdd];
for(int i=0; i<numOfItemsToAdd; i++){
    if(i%2 == 0){//% the number of columns you want in your menu
        x = 0;
        if(i!=0)
            y += menuItemHeight;  
    }else{
        x = menuItemWidth;  
    }
    menuItem = [[UIImageView alloc] initWithFrame: CGRectMake(x, y, menuItemWidth, menuItemHeight)];

    //set the center of the menu item in the scroll superviews coordinate system 
    menuItem.center = CGPointMake(x, y); 

    //Add the name of the image you want for the menu item
    //These strings could be stored in an array and retrieved in order
    menuItem.image = [UIImage imageNamed:@"MyImage"]; 

    //Finaly add the menu item to the scorll view
    [scrollView addSubview:menuItem];
}
0 голосов
/ 14 апреля 2011

Это полностью настраиваемый макет представления и, по-моему, не очень подходит для представления таблицы. Как и в любом другом, есть много способов достичь того, что вы хотите. Вот как я бы подошел к этой реализации сам. Там вполне могут быть хорошие реализации с открытым исходным кодом.

GridViewController: UIViewController

Это самый верхний контроллер представления, имеющий UIScrollView, содержащий 1 или более страниц объектов GridView. Этот контроллер представления будет взаимодействовать с источником данных, который предоставляет 0..N объектов для отображения в отдельных видах сетки.

GridView: UIView

Каждое сеточное представление будет пользовательским UIViewSubclass, который знает, как расположить от 0 до N объектов в соответствии с данными, предоставленными источником данных GridViewController. Каждый значок в сетке будет соответствующим UIView подклассом, может быть UIButton или UIImageView или, возможно, индивидуальным, в зависимости от того, как он должен выглядеть и действовать.

При необходимости будет добавлено больше поведения для перетаскивания значков, создания новых страниц, сохранения состояния в модели данных и т. Д. И т. Д.

0 голосов
/ 05 апреля 2011

Вы можете выбрать многостолбцовый макет табличного представления, в котором вы можете определить каждую строку и столбец.

Вы можете проверить это руководство для рисования сетки в iPhone UITableView - Табличные данные ячейки

http://www.iphonedevx.com/?p=153

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...