drawRect не вызывается, когда представление появляется снова - PullRequest
0 голосов
/ 07 июня 2019

Я использовал drawRect как viewWillAppear, проверил некоторые состояния и установил некоторые значения для меток.

Это было нормально на iOS 12 и более поздних версиях .Но drawRect не вызывается - iOS 11.3 и более ранние .

Итак, я нашел обходной путь.Я использую метод willMoveToWindow, чтобы сделать то, что я сделал бы в viewWillAppear

   @implementation AFEBigLapTimerWidgetView
   - (void)drawRect:(CGRect)rect {

        if (self.viewModel.isLapTimerServiceStarted) {
            [self setLapTimerButtoStateWithState:AFELapimerButtonStateLap];
            [self.viewsToHide enumerateObjectsUsingBlock:^(UIView *_Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
                obj.hidden = NO;
            }];
            [self.viewModel updateLabelsForStartedService];
        } else if (self.viewModel.isCountdownOngoing) {
            // Check if countdown is ongoing
            self.countdownLabel.hidden = NO;
            self.countdownLabel.alpha = 1.0;
            [self setLapTimerButtoStateWithState:AFELapimerButtonStateLap];
            [self countdownValueChanged:self.viewModel.countdownValue];
            [self.viewsToHide enumerateObjectsUsingBlock:^(UIView *_Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
                obj.hidden = YES;
            }];
        } else {
            [self setupDefaults];
        }
    }
    @end
...