Ячейка UITableView с фоновым изображением - PullRequest
46 голосов
/ 13 июня 2011

У меня есть UITableView, где есть 3 изображения.1 для выбранной ячейки, 1 для фона ячейки и 1 для фона TableView.

Моя выбранная ячейка работает нормально, но есть проблемы с обычными ячейками и фоном TableView (фоном).позади ячеек при прокрутке вниз / вверх)

Может ли кто-нибудь помочь мне с фоном для каждой ячейки и фоном TableView?как это сделать?

Обычный фон ячейки: (не уверен, правильно ли он)

// CELL'S BACKGROUND-IMAGE
    self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"cell_normal.PNG"]];

Фон выбранной ячейки:

// SELECTED CELL'S BACKGROUND-IMAGE
    UIView *viewSelected = [[[UIView alloc] init] autorelease];
    viewSelected.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"cell_highlighted.PNG"]];
    cell.selectedBackgroundView = viewSelected;

Ответы [ 9 ]

144 голосов
/ 13 июня 2011

Для ячейки

    cell.backgroundView = [[UIImageView alloc] initWithImage:[ [UIImage imageNamed:@"cell_normal.png"] stretchableImageWithLeftCapWidth:0.0 topCapHeight:5.0] ];  
    cell.selectedBackgroundView =  [[UIImageView alloc] initWithImage:[ [UIImage imageNamed:@"cell_pressed.png"] stretchableImageWithLeftCapWidth:0.0 topCapHeight:5.0] ];

Для таблицы

    [mEditTableView setBackgroundView:nil];
    [mEditTableView setBackgroundView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"apple.png"]] ];
10 голосов
/ 27 августа 2012

Вы можете установить UITableViewCell фон цвет / изображение , используя следующий метод делегата

 - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath
 *)indexPath  
{      
     if((indexPath.row)==0)  
       cell.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"cell_normal.PNG"]]; //set image for cell 0

     if (indexPath.row==1)  
       cell.backgroundColor = [UIColor colorWithRed:.8 green:.6 blue:.6 alpha:1]; //set color for cell 1

     tableView.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @"cloud.jpg"]]; //set image for UITableView

  }
6 голосов
/ 08 октября 2015

В swift вы можете установить фоновое изображение на UITableViewCell, как показано ниже.

cell.backgroundView = UIImageView(image: UIImage(named: "yourImage.png")!)

Введите этот код в этой функции табличного представления.

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 

Это изображение будет повторяться в каждом ряду.

3 голосов
/ 13 июня 2011

это устанавливает фон для tableView, а не ячейки

// CELL'S BACKGROUND-IMAGE
    self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"cell_normal.PNG"]];

попробуйте получить setbackbackground в cellForRowAtIndexPath

 cell.backgroundColor =  [UIColor colorWithPatternImage:[UIImage imageNamed:@"cell_normal.PNG"]];
2 голосов
/ 01 февраля 2018

В Swift 4 это работает:

cell.backgroundView = UIImageView.init(image: UIImage.init(named: "YORIMAGE.jpg"))
0 голосов
/ 10 июня 2016

Только это решение сработало для меня.

Cell.backgroundColor = [UIColor clearColor];
Cell.contentView.backgroundColor=[UIColor clearColor];

Надеюсь, это поможет!

0 голосов
/ 06 февраля 2016

установить изображение в ячейке UITableview

cell.imageView.image = [UIImage imageNamed: @ "image.png"];

0 голосов
/ 15 сентября 2014

Вы можете попробовать этот код блока для установки фонового изображения UITableviewCell

self.backgroundView = [[[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"background.png"] stretchableImageWithLeftCapWidth:0.0 topCapHeight:5.0]] autorelease];

self.selectedBackgroundView = [[[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"background_selected.png"] stretchableImageWithLeftCapWidth:0.0 topCapHeight:5.0]] autorelease];

Надеется, это сработает для вас.:)

0 голосов
/ 13 июня 2011
//this concept is right but one problem is create when ur fastly scroll in uitable View then cell background color slowly change and indexing problem 

for Cell

    UIView *myBackView = [[UIView alloc] initWithFrame:cell.frame];
    myBackView.backgroundColor = [UIColor colorWithRed:1 green:1 blue:0.75 alpha:1];
    cell.selectedBackgroundView = myBackView;
    [myBackView release];

for table

    aTableView.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @"cloud.jpg"]];
    aTableView.separatorStyle = UITableViewCellSeparatorStyleNone;

//this concept is right but one problem is cteare when ur fastly scroll in uitable View then cell background color slowly change and indexing problem  so use this code

for Cell


- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
   cell.backgroundColor = (indexPath.row%2)?[UIColor lightGrayColor]:[UIColor grayColor];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...