iPhone UITableView фоновое изображение, когда таблица пуста - PullRequest
6 голосов
/ 19 января 2012

Я хотел бы показать фоновое изображение, когда мой UITableView пуст.В настоящее время я пытался добавить UIImageView в свой контроллер представления, который содержит таблицу, но XCode не позволяет этого.

Есть ли хороший способ сделать это?

Ответы [ 3 ]

15 голосов
/ 19 января 2012

Вы можете добавить представление изображения поверх представления таблицы или изменить фоновое представление представления таблицы.

// Check if table view has any cells
int sections = [self.tableView numberOfSections];
BOOL hasRows = NO;
for (int i = 0; i < sections; i++) {
    BOOL sectionHasRows = ([self.tableView numberOfRowsInSection:i] > 0) ? YES : NO;
    if (sectionHasRows) {
        hasRows = YES;
        break;
    }
}

if (sections == 0 || hasRows == NO)
{
    UIImage *image = [UIImage imageNamed:@"test.png"];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

    // Add image view on top of table view
    [self.tableView addSubview:imageView];

    // Set the background view of the table view
    self.tableView.backgroundView = imageView;
}
4 голосов
/ 19 января 2012

UITableView имеет свойство backgroundView.Установите для этого свойства значение UIImageView, содержащее фоновое изображение.

1 голос
/ 11 ноября 2016

В вас numberOfRowsInSection метод:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    if data.count > 0 {

        return data.count
    }
    else{

        let image = UIImage(named: "Nature")
        let noDataImage = UIImageView(image: image)
        noDataImage.frame = CGRect(x: 0, y: 0, width: tableView.bounds.width, height: tableView.frame.height)
        tableView.backgroundView = noDataImage
        tableView.separatorStyle = .none

        return 0
    }
}

numberOfSections должно быть больше 0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...