Форум программистов, компьютерный форум CyberForum.ru

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
VV0lk
11 / 1 / 0
Регистрация: 25.12.2011
Сообщений: 169
#1

Как изменить вид группированного UITableView? - Программирование iOS

25.11.2014, 10:35. Просмотров 690. Ответов 4
Метки нет (Все метки)

Здравствуйте пробую писать под iPhone на Xamarin хочу сделать дизайн главного вида похожем на этот:
http://www.cyberforum.ru/attachment....1&d=1416900221
Для этого размещаю на ViewController элемент UITableView, присваеваю его стилю - Grouped и пишу следующий код:
Кликните здесь для просмотра всего текста

C#
1
SectionTableViewController.Source = new SectionSource ();
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
public class SectionSource : UITableViewSource
    {
        List<List<string>> SectionList = new List<List<string>>();
 
        List<string> SectionOneList = new List<string>   { "one", "two" };
        List<string> SectionTwoList = new List<string>   { "three" };
        List<string> SectionThreeList = new List<string> { "four" };
        List<string> SectionFourList = new List<string>  { "five" };
        List<string> SectionFiveList = new List<string>  { "six", "seven" };
 
        public SectionSource () 
        {
            SectionList.Add (SectionOneList);
            SectionList.Add (SectionTwoList);
            SectionList.Add (SectionThreeList);
            SectionList.Add (SectionFourList);
            SectionList.Add (SectionFiveList);
        }
 
        public override int NumberOfSections(UITableView tableView)
        {
            return 5;
        }
 
        public override int RowsInSection(UITableView tableview, int section)
        {
            if ((section == 0)||(section == 4))
            {
                return SectionOneList.Count;
            } 
            else 
            {
                return SectionTwoList.Count;
            }
        }
 
        public override UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath)
        {
            UITableViewCell cell;
 
                cell = tableView.DequeueReusableCell ( SectionList[indexPath.Section].ToString());
                if (cell == null)
                    cell = new UITableViewCell(UITableViewCellStyle.Value2,SectionList[indexPath.Section].ToString());
                cell.TextLabel.Text =SectionList[indexPath.Section][indexPath.Row];
                cell.DetailTextLabel.Text = string.Format ("Это секция {0}", indexPath.Section);
 
            return cell;
        }
 
 
        public override void RowSelected (UITableView tableView, NSIndexPath indexPath)
        {
            Console.WriteLine (tableView.CellAt(indexPath).DetailTextLabel.Text);
            Console.WriteLine (indexPath.Section);
            Console.WriteLine (indexPath.Row);
 
        }
    }

И получаю следующий вид:
http://www.cyberforum.ru/attachment....1&d=1416897019
Вот код вида этого элемента:
Кликните здесь для просмотра всего текста

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="42" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO">
                                <rect key="frame" x="0.0" y="76" width="320" height="236"/>
                                <color key="backgroundColor" cocoaTouchSystemColor="lightTextColor"/>
                                <prototypes>
                                    <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="43">
                                        <rect key="frame" x="0.0" y="55" width="320" height="44"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="44" tableViewCell="43">
                                            <rect key="frame" x="0.0" y="0.0" width="320" height="43.5"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
                                        </view>
                                    </tableViewCell>
                                    <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="45" clipsSubviews="YES">
                                        <rect key="frame" x="0.0" y="99" width="320" height="44"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="46" tableViewCell="45">
                                            <rect key="frame" x="0.0" y="0.0" width="320" height="43.5"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
                                        </view>
                                    </tableViewCell>
                                    <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="50">
                                        <rect key="frame" x="0.0" y="143" width="320" height="44"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="50" id="51">
                                            <rect key="frame" x="0.0" y="0.0" width="320" height="43.5"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                        </tableViewCellContentView>
                                    </tableViewCell>
                                    <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="52">
                                        <rect key="frame" x="0.0" y="187" width="320" height="44"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="52" id="53">
                                            <rect key="frame" x="0.0" y="0.0" width="320" height="43.5"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                        </tableViewCellContentView>
                                    </tableViewCell>
                                    <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="54">
                                        <rect key="frame" x="0.0" y="231" width="320" height="44"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="54" id="55">
                                            <rect key="frame" x="0.0" y="0.0" width="320" height="43.5"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                        </tableViewCellContentView>
                                    </tableViewCell>
                                </prototypes>
                                <color key="sectionIndexBackgroundColor" cocoaTouchSystemColor="lightTextColor"/>
                            </tableView>

Подскажите что и где надо изменить, чтобы получить вид ТаблВиью, как на первой картинке? Заранее спасибо!
Миниатюры
Как изменить вид группированного UITableView?   Как изменить вид группированного UITableView?  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2014, 10:35     Как изменить вид группированного UITableView?
Посмотрите здесь:
Как добавить блок AdMob на UITableView?
Как наполнять UITableView ячейками разной высоты? Objective-C
Как поймать момент, когда ячейка UITableView показалась на экране?
Objective-C Как при дозагрузке данных показать UIActivityIndicatorView внизу UITableView?
Как сделать асинхронную загрузку картинок в UITableView не останавливая главный поток? Objective-C
Сортировка в UITableView
Несуществующий UITableView
UITableView Section Objective-C
Работа с жестами в UITableView
UITableView запутался с вьюхой
Индексация ячеек в UITableView
Swift Передать из UITableView в UIWebView

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Victorianec
20 / 20 / 6
Регистрация: 09.01.2014
Сообщений: 118
25.11.2014, 11:48     Как изменить вид группированного UITableView? #2
Кажется мне, что на первой картинке у вас приложение запущено на iOS 6. А симулятор у вас с iOS 8.1 Так что такой вид (по умолчанию, или как говорится "из коробки"), вы получите только на 6й ОСи. Либо собственноручно сделайте ячейки, которые будут выглядеть как вам нужно.
VV0lk
11 / 1 / 0
Регистрация: 25.12.2011
Сообщений: 169
25.11.2014, 14:47  [ТС]     Как изменить вид группированного UITableView? #3
Либо собственноручно сделайте ячейки, которые будут выглядеть как вам нужно.
Как это сделать? Можно ссылочку, или краткий туториал по этому вопросу?

Добавлено через 1 час 18 минут
Или может есть какое либо св-во, чтобы таблица всегда отображалась как в iOS 6 не зависимо от текущей версии системы.
Victorianec
20 / 20 / 6
Регистрация: 09.01.2014
Сообщений: 118
26.11.2014, 10:22     Как изменить вид группированного UITableView? #4
Цитата Сообщение от VV0lk Посмотреть сообщение
Или может есть какое либо св-во, чтобы таблица всегда отображалась как в iOS 6 не зависимо от текущей версии системы.
Опять же, по-умолчанию такое не возможно. Только кастомизация элементов поможет.
Цитата Сообщение от VV0lk Посмотреть сообщение
Как это сделать? Можно ссылочку, или краткий туториал по этому вопросу?
Вбейте в гугл "ios custom UITableViewCell/UITableView tutorial" и получите достаточно ссылок по этому вопросу.
VV0lk
11 / 1 / 0
Регистрация: 25.12.2011
Сообщений: 169
26.11.2014, 11:55  [ТС]     Как изменить вид группированного UITableView? #5
Спасибо.
Yandex
Объявления
26.11.2014, 11:55     Как изменить вид группированного UITableView?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru