2017-02-19 32 views
4

Я хочу установить фоновое изображение в UITableView, когда список пуст. Я установил его, используя следующий код. Он хорошо виден на iPhone 5. Но показывая некоторое пространство в устройствах iPhone 6 дальше.UITableView - проблема с размером и расположением фонового изображения

Пожалуйста, помогите. Я новичок для разработки iOS.

@IBOutlet var tableView: UITableView! 

let bgView = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: tableView.frame.size.height)) 

let ivImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: tableView.frame.size.height)) 
ivImageView.image = image 
ivImageView.tintColor = UIColor.green 
ivImageView.contentMode = UIViewContentMode.scaleAspectFit 
ivImageView.alpha = 0.05 
bgView.addSubview(ivImageView) 

tableView.backgroundView = bgView 
tableView.backgroundView?.layoutIfNeeded() 
tableView.backgroundView?.layoutSubviews() 

Here is sample snapshot with actual problem

+0

Вы хотите, чтобы изображениеView было в центре или заполнило представление? – KrishnaCA

+0

Я хочу в центре –

+0

Проверьте эту ссылку SO - http://stackoverflow.com/questions/31503580/programmatically-set-position-of-swift-element – androidnoobdev

ответ

0

Ваш код абсолютно правильно.

Проблема в том, что вы можете установить фоновое изображение во время viewDidLoad(). Вместо этого попробуйте его с помощью viewWillApper(). Он установит ваш фрейм, точно соответствующий размеру вашего стола.

Есть и другие варианты. Сбросьте рамку изображения после некоторой задержки времени, используя DispatchQueue.main.asyncAfter или используйте performSelectorWithDelay.

Сообщите мне, если вы не можете этого сделать.

-1

чек, изменив эту строку: ivImageView.contentMode = UIViewContentMode.scaleAspectFit к ivImageView.contentMode = UIViewContentMode.center

+0

Трейд для установки режима как централизованного, но не работающего. –