Commit 965501ef authored by Steven杜宇's avatar Steven杜宇

// 生活详情

parent a10edf63
...@@ -17,7 +17,6 @@ class YHLifeDetailViewController: YHBaseViewController { ...@@ -17,7 +17,6 @@ class YHLifeDetailViewController: YHBaseViewController {
var downloadUrl: String = "" var downloadUrl: String = ""
var imgItems:[YHHomeIdentityItem] = [] var imgItems:[YHHomeIdentityItem] = []
var scrollContentY: CGFloat = 0.0 var scrollContentY: CGFloat = 0.0
var isShowBottomView: Bool = false var isShowBottomView: Bool = false
...@@ -68,7 +67,7 @@ class YHLifeDetailViewController: YHBaseViewController { ...@@ -68,7 +67,7 @@ class YHLifeDetailViewController: YHBaseViewController {
tableView.delegate = self tableView.delegate = self
tableView.dataSource = self tableView.dataSource = self
tableView.bounces = false tableView.bounces = false
let view = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: Self.headerHeight)) let view = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: self.headerHeight))
tableView.tableHeaderView = view tableView.tableHeaderView = view
tableView.separatorStyle = .none tableView.separatorStyle = .none
return tableView return tableView
...@@ -96,14 +95,15 @@ class YHLifeDetailViewController: YHBaseViewController { ...@@ -96,14 +95,15 @@ class YHLifeDetailViewController: YHBaseViewController {
return view return view
}() }()
static let headerHeight: CGFloat = KScreenWidth+44.0+9.0 var headerHeight: CGFloat = KScreenWidth+44.0+9.0
lazy var headerView:UIView = { lazy var headerView:UIView = {
let view = UIView(frame: CGRectMake(0, 0, KScreenWidth, Self.headerHeight)) let view = UIView(frame: CGRectMake(0, 0, KScreenWidth, KScreenWidth+44.0+9.0))
view.backgroundColor = .white view.backgroundColor = .white
view.addSubview(self.headImgView) view.addSubview(self.headImgView)
headImgView.snp.makeConstraints { make in headImgView.snp.makeConstraints { make in
make.left.top.right.equalToSuperview() make.left.top.right.equalToSuperview()
make.height.equalTo(headImgView.snp.width) make.height.equalTo(KScreenWidth)
} }
self.segmentedView.dataSource = segmentedDataSource self.segmentedView.dataSource = segmentedDataSource
view.addSubview(self.segmentedView) view.addSubview(self.segmentedView)
...@@ -264,7 +264,7 @@ extension YHLifeDetailViewController: UIScrollViewDelegate { ...@@ -264,7 +264,7 @@ extension YHLifeDetailViewController: UIScrollViewDelegate {
if scrollView == self.fakeTableView { if scrollView == self.fakeTableView {
return return
} }
if scrollView.contentOffset.y >= (Self.headerHeight-k_Height_NavigationtBarAndStatuBar-45.0) { if scrollView.contentOffset.y >= (self.headerHeight-k_Height_NavigationtBarAndStatuBar-45.0) {
navView.backgroundColor = .white navView.backgroundColor = .white
topSegmentedView.isHidden = false topSegmentedView.isHidden = false
topLine.isHidden = false topLine.isHidden = false
...@@ -329,7 +329,7 @@ extension YHLifeDetailViewController: UITableViewDataSource, UITableViewDelegate ...@@ -329,7 +329,7 @@ extension YHLifeDetailViewController: UITableViewDataSource, UITableViewDelegate
} }
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 0.01 return KScreenHeight/3.0
} }
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
...@@ -389,6 +389,35 @@ extension YHLifeDetailViewController { ...@@ -389,6 +389,35 @@ extension YHLifeDetailViewController {
func requestImages() { func requestImages() {
let ossGroup = DispatchGroup() let ossGroup = DispatchGroup()
if let headImgUrl = self.productModel.banner.first {
ossGroup.enter()
self.headImgView.kf.setImage(with: URL(string: headImgUrl)) { result in
switch result {
case .success(let value):
var imgHeight = KScreenWidth
if value.image.size.height > 0.0, value.image.size.width > 0.0 {
imgHeight = KScreenWidth * (value.image.size.height/value.image.size.width)
}
self.headerHeight = imgHeight+44.0+9.0
self.headerView.height = self.headerHeight
self.headImgView.snp.updateConstraints { make in
make.height.equalTo(imgHeight)
}
self.headerView.setNeedsLayout()
self.headerView.layoutIfNeeded()
self.tableView.tableHeaderView = self.headerView
self.fakeTableView.tableHeaderView?.height = self.headerHeight
case .failure(let error):
print("image download failed: \(error.localizedDescription)")
}
self.tableView.reloadData()
self.fakeTableView.reloadData()
ossGroup.leave()
}
}
for item in self.imgItems { for item in self.imgItems {
ossGroup.enter() ossGroup.enter()
item.imgView.kf.setImage(with: URL(string: item.url)) { result in item.imgView.kf.setImage(with: URL(string: item.url)) { result in
...@@ -403,6 +432,7 @@ extension YHLifeDetailViewController { ...@@ -403,6 +432,7 @@ extension YHLifeDetailViewController {
ossGroup.leave() ossGroup.leave()
} }
} }
ossGroup.notify(queue: .main) { ossGroup.notify(queue: .main) {
self.tableView.reloadData() self.tableView.reloadData()
self.fakeTableView.reloadData() self.fakeTableView.reloadData()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment