Подсветить границы выделенной ячейки в UITableView - PullRequest
3 голосов
/ 26 августа 2011

Есть ли возможность выделения границ выбранной ячейки в UITableViewController в Objective-c?

Ответы [ 2 ]

2 голосов
/ 26 августа 2011

Вы можете попробовать создать пользовательский UIView / UIImageView для выделения с помощью setSelectedBackgroundView:

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

UIView *selctionView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height)] autorelease];

CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = selctionView.bounds;
gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor blueColor] CGColor], (id)[[UIColor redColor] CGColor], nil];

[selctionView.layer insertSublayer:gradient atIndex:0];

[self setSelectedBackgroundView:selctionView];

EDIT:

Я узнал, что вы также можете использовать методы:

[test.layer setBorderColor: [[UIColor redColor] CGColor]];
[test.layer setBorderWidth: 1.0]; 

для слоя.

обязательно импортируйте QuartzCore.h

остальное за весь просмотр таблицы:

[tableViewController.tableView setSeparatorColor:[UIColor redColor]];
0 голосов
/ 26 августа 2011

Это действительно просто, так как OS 3.0 просто устанавливает цвет фона ячейки в методе willDisplayCell. Вы не должны устанавливать цвет в cellForRowAtIndexPath.

Это работает как для простого, так и для группового стиля:

Код:

  • (void) tableView: (UITableView *) tableView willDisplayCell: (UITableViewCell *) ячейка дляRowAtIndexPath: (NSIndexPath *) indexPath { cell.backgroundColor = [UIColor redColor]; }

P.S .: Вот выдержка из документации для willDisplayCell:

"A table view sends this message to its delegate just before it uses cell to draw a row, thereby permitting the delegate to customize the cell object before it is displayed. This method gives the delegate a chance to override state-based properties set earlier by the table view, such as selection and background color. After the delegate returns, the table view sets only the alpha and frame properties, and then only when animating rows as they slide in or out."

Я нашел эту информацию в этом сообщении от colionel. Спасибо ему!

...