Commit bbf41fed by Dmitriy Stepanets

Changed getter for TimePeriodCell frame

parent 2d426c1d
......@@ -7,7 +7,7 @@
<key>1Weather.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>5</integer>
<integer>4</integer>
</dict>
<key>PG (Playground) 1.xcscheme</key>
<dict>
......
......@@ -23,7 +23,6 @@ class ForecastCellFactory {
private let forecastViewModel:ForecastViewModel
//Public
public var forecastPeriodCellFrame:CGRect = .zero
public var numberOfRows:Int {
return ForecastCellType.allCases.count
}
......@@ -48,8 +47,7 @@ class ForecastCellFactory {
case .forecastPeriod:
let cell = dequeueReusableCell(type: ForecastTimePeriodCell.self, tableView: tableView, indexPath: indexPath)
cell.delegate = self
forecastPeriodCellFrame = cell.frame
if let daily = forecastViewModel.location?.daily,
let hourly = forecastViewModel.location?.hourly {
cell.configure(daily: daily, hourly: hourly)
......
......@@ -14,6 +14,7 @@ class ForecastViewController: UIViewController {
private let daysControlView = DaysControlView()
private let tableView = UITableView()
private let viewModel:ForecastViewModel
private var timePeriodCellFrame = CGRect.zero
private var localizationObserver:Any?
init(viewModel: ForecastViewModel) {
......@@ -113,21 +114,18 @@ private extension ForecastViewController {
//MARK:- UITableView Delegate
extension ForecastViewController: UITableViewDelegate {
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let cellFrame = forecastCellFactory.forecastPeriodCellFrame
guard
let navVC = self.navigationController,
viewModel.location?.daily.isEmpty == false
else {
return
}
let startPointY = cellFrame.origin.y + cellFrame.height - self.daysControlView.frame.height
guard startPointY > 0 else {
//Force reload row to get actual row height
tableView.reloadRows(at: [[0,0]], with: .none)
return
if timePeriodCellFrame == .zero {
timePeriodCellFrame = tableView.cellForRow(at: [0,0])?.frame ?? .zero
}
let startPointY = timePeriodCellFrame.origin.y + timePeriodCellFrame.height - self.daysControlView.frame.height
if scrollView.contentOffset.y >= startPointY {
if !navVC.isNavigationBarHidden {
......
......@@ -21,7 +21,7 @@
<key>Cirque.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>4</integer>
<integer>3</integer>
</dict>
<key>Localize-Swift.xcscheme</key>
<dict>
......@@ -40,14 +40,14 @@
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>2</integer>
<integer>1</integer>
</dict>
<key>SnapKit.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>3</integer>
<integer>2</integer>
</dict>
<key>XMLCoder.xcscheme_^#shared#^_</key>
<dict>
......
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