2008-10-30 6 views
8

cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;Как сделать UITableViewCellAccessoryDisclosureIndicator видимым на черном фоне?

в этом методе

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath; 

, но я могу видеть его только тогда, когда я выбираю эту ячейку в противном случае это не visible.and это работает прекрасно, когда фон белый. Я уверен, что мне нужно установить свойство, но я не знаю, какое свойство мне нужно изменить, чтобы эта работа работала.

Заранее благодарим.

ура.

+1

Здесь находится сетчатка PNG для этой темы - http://habrastorage.org/storage2/007/481/416/007481416fb2a314032f98dbda0fde52.png. Прекрасно работает в моем проекте. – iago849 2012-10-02 16:04:55

ответ

7

Похоже, что индикатор раскрытия представляет собой серое изображение с высоким альфа-покрытием, поэтому наложение на черный фон делает его невидимым. Если вы хотите это сделать, вам нужно добавить свой собственный UIImageView в contentView.

9

Я столкнулся с этой проблемой и просто создаю UIImageView из образа UWiewName @ «AccDisclosure.png», используя следующий поспешный макет, который вы можете скопировать: http://thinkingman.com/db/downloads/AccDisclosure.png (если вы просто нажмете ссылка, вы, вероятно, ничего не увидите, так как это белое изображение с прозрачным фоном, но если вы сохраните его и посмотрите на темном фоне, вы увидите альфа).

+2

Есть ли шанс, что у вас также есть сетчатая версия? – hanno 2012-07-03 13:03:01

1

Следующий код позволяет мне установить цвет фона наконечника стрелки в строке таблицы:

@property (nonatomic,retain) UILabel *backgroundLabel; 

UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero]; 
label.backgroundColor = [UIColor orangeColor]; 
self.backgroundLabel = label; 
[self.contentView addSubview:label]; 
[label release]; 

CGRect labelRect = CGRectOffset(contentRect,0, 0); 
labelRect.size.height = contentRect.size.height - 1; // show white line 
labelRect.size.width = contentRect.size.width + 50; // cover arrow tip background 
backgroundLabel.frame = labelRect;  
backgroundLabel.highlightedTextColor = [UIColor whiteColor]; 
0

Я сделал решение, в котором я добавил ImageView с addSubView обычным способом, с изображением, которое не был черным (в моем случае, серым заполненным кругом) в положении, в котором появляется аксессуар.

Это позволяет видеть стрелку и иметь темный/черный цвет фона ячейки стола.

Возможно, это не самое кошерное решение, но оно отображает стрелку, и я получаю уведомление об аксессуарах без подкласса или написания большого количества кода.

Смежные вопросы