В своем приложении я использовал эффект параллакса для таблицы. Поэтому я использовал с UIEdgeInsets, чтобы показать эффект. Это идеальная работа без секции, но когда я попытался с секцией, она выглядела ужасно, и секция получала зерк при прокрутке вверх и вниз. Я прикрепил клип для большего зазора. И я использовал ниже код. ссылка Пожалуйста, помогите мне
override func viewDidLoad()
{
super.viewDidLoad()
tblItemList.contentInset = UIEdgeInsets(top: 200, left: 0, bottom: 0, right: 0)
imageView.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: 200)
imageView.image = UIImage.init(named: "32621859132_25f783b550_o.jpg")
imageView.contentMode = .scaleAspectFill
imageView.clipsToBounds = true
//imageView.backgroundColor = .white
view.addSubview(imageView)
}
extension RestaurantDetailsVC : UITableViewDataSource, UITableViewDelegate
{
func numberOfSections(in tableView: UITableView) -> Int {
return 3
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 5
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCell(withIdentifier: "ItemCell", for: indexPath) as! ItemCell
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 105
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
{
let cell = tableView.dequeueReusableCell(withIdentifier: "ItemSectionCell") as! ItemSectionCell
cell.backgroundColor = .white
return cell
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 44
}
//Scrollview delegate
func scrollViewDidScroll(_ scrollView: UIScrollView)
{
let y = 200 - (scrollView.contentOffset.y + 200)
let height = min(max(y, 0), 300)
imageView.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: height)
if height <= 0
{
UIView.animate(withDuration: Double(0.1), animations: {
self.constraintTopForViewBar.constant = 0
self.viewForTopBar.isHidden = false
self.view.layoutIfNeeded()
}) { (result) in}
self.tblItemList.contentInset = UIEdgeInsets(top: 68, left: 0, bottom: 0, right: 0)
}
else
{
UIView.animate(withDuration: Double(0.1), animations: {
self.constraintTopForViewBar.constant = -68
self.viewForTopBar.isHidden = true
self.view.layoutIfNeeded()
}) { (result) in}
self.tblItemList.contentInset = UIEdgeInsets(top: 200, left: 0, bottom: 0, right: 0)
}
//print(height)
}
}