UITableViewCell / пограничный вопрос UISegmentedControl

В Windows 7 1) нажмите Windows + R, откроется Run 2) Войдите в services.msc 3) Найдите mysql, щелкните правой кнопкой мыши и запустите 4) если mysql не был найден 1) Запустите cmd от имени администратора 2) перейдите в C: \ Program Файлы (x86) \ MySQL \ MySQL Server 5.6 \ bin (для возврата используйте cd ..) и введите «mysqld.exe --install» 5), следуйте шагу 3 Вот и все

6
задан pablasso 10 November 2011 в 06:31
поделиться

4 ответа

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

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CellIdentifier"];
if(cell == nil) 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CellIdentifier"] autorelease];

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithFrame:CGRectMake(-1.0f, -1.0f, 302.0f, 46.0f)];
[cell.contentView addSubview:segmentedControl];
7
ответ дан 8 December 2019 в 17:26
поделиться

Я немного продвинулся в этом вопросе. Пока что я создал подклассы от UITableViewCell. Я создал перо с UISegmentedControl в нем и установил альфа-канал фона UITableViewCell на 0. Это все еще выглядит не совсем правильно, но теперь лучше, чем раньше.

1
ответ дан 8 December 2019 в 17:26
поделиться

В случае с настройками Wi-Fi, я подозреваю, что они сделали так, что кнопка "Forget this Network", метка "IP Address" и сегмент "DHCP/BootP/Static" управляют всей частью представления заголовка таблицы. Если вам нужно сделать это в середине таблицы (в отличие от верхней или нижней, для которой вы бы использовали свойства tableHeaderView и tableFooterView соответственно), я бы предложил использовать методы делегатов -tableView:viewForHeaderInSection: с -tableView:heightForHeaderInSection, или с соответствующими вариантами Footer. С любым из них вы можете настроить пользовательский вид для этого "раздела" вашего представления таблицы (используя либо чистый цвет фона, либо [UIColor groupTableBackgroundColor]), содержащий метку и сегментированный элемент управления, расположенный так, чтобы он совпадал с остальными разделами таблицы.

.
3
ответ дан 8 December 2019 в 17:26
поделиться

Хитрость, по-видимому, состоит в том, чтобы размер UISegmentedControl был равен размеру backgroundView элемента управления, а не contentView. Я смог сделать это программно, сделав следующее:

    // Size to cover the entire background
    self.contentView.frame = self.backgroundView.frame;
    self.myControl.frame = self.contentView.bounds;

Обратите внимание, что если вы используете аксессуар, вам также необходимо учитывать аксессуарView .

Причина в том, что иерархия просмотра выглядит следующим образом:

  • self (the UITableViewCell или subclass)
    • backgroundView
    • contentView
      • (ваши элементы управления идут здесь)
    • accessoryView

В портретной компоновке кадр backgroundView составляет {{9, 0}, {302, 44}}, в то время как кадр contentView немного меньше, на {{{10, 1}, {300, 42}}. Это дает ячейке 1px "границу", когда стиль таблицы сгруппирован. Вы должны изменить размер как contentView так и вашего элемента управления, чтобы получить соответствующий размер.

(ПРИМЕЧАНИЕ: В то время как Apple на самом деле имеет несколько примеров UISegmentedControl в проекте кода-примеру UICatalog в SDK, они фактически "обманывают", используя UIViewController и устанавливая цвет фона основного вида в цвет фона таблицы)

.
0
ответ дан 8 December 2019 в 17:26
поделиться