From 534778409c3d528770e82ae0b8dc6f7da2d0a329 Mon Sep 17 00:00:00 2001 From: Burrit0z Date: Tue, 2 Jun 2020 20:52:57 -0400 Subject: [PATCH] move height calculations to another method --- KAIBatteryPlatter.h | 1 + KAIBatteryPlatter.mm | 64 +++++++++++++++++++++++--------------------- Kai.xm | 12 ++++++++- 3 files changed, 46 insertions(+), 31 deletions(-) diff --git a/KAIBatteryPlatter.h b/KAIBatteryPlatter.h index cd987ff..b5467be 100755 --- a/KAIBatteryPlatter.h +++ b/KAIBatteryPlatter.h @@ -9,4 +9,5 @@ -(instancetype)initWithFrame:(CGRect)arg1; -(void)refreshForPrefs; -(void)updateBattery; +-(void)calculateHeight; @end \ No newline at end of file diff --git a/KAIBatteryPlatter.mm b/KAIBatteryPlatter.mm index c9bda42..7bb58e4 100755 --- a/KAIBatteryPlatter.mm +++ b/KAIBatteryPlatter.mm @@ -124,36 +124,7 @@ long long lastPercentage; -(void)setNumber:(NSInteger)arg1 { _number = arg1; - [UIView animateWithDuration:0.3 animations:^{ - - if(!self.heightConstraint) { - - self.heightConstraint = [self.heightAnchor constraintEqualToConstant:(self.number * (bannerHeight + spacing))]; - self.stack.heightConstraint = [self.heightAnchor constraintEqualToConstant:(self.number * (bannerHeight + spacing))]; - self.heightConstraint.active = YES; - self.stack.heightConstraint.active = YES; - [self setContentSize:self.stack.frame.size]; - - } else { - int height = (self.number * (bannerHeight + spacing)); - if(kaiAlign==0) { - height = (self.number * (bannerHeight + spacing)); - } else { - height = bannerHeight + spacing; - } - - if([self.superview.subviews count]>1) { - height = height - spacing; - } - self.heightConstraint.constant = height; - self.stack.heightConstraint.constant = height; - - UIStackView *s = (UIStackView *)(self.superview); - s.frame = CGRectMake(s.frame.origin.x, s.frame.origin.y, s.frame.size.width, (s.frame.size.height - 1)); - //literally does nothing but makes the stack view lay itself out (doesnt adjust frame because translatesAutoreszingMaskIntoConstraints = NO on stack views) - } - - }]; + [self calculateHeight]; } -(void)addSubview:(UIView *)view { @@ -186,6 +157,39 @@ long long lastPercentage; } +-(void)calculateHeight { + [UIView animateWithDuration:0.3 animations:^{ + + if(!self.heightConstraint) { + + self.heightConstraint = [self.heightAnchor constraintEqualToConstant:(self.number * (bannerHeight + spacing))]; + self.stack.heightConstraint = [self.heightAnchor constraintEqualToConstant:(self.number * (bannerHeight + spacing))]; + self.heightConstraint.active = YES; + self.stack.heightConstraint.active = YES; + [self setContentSize:self.stack.frame.size]; + + } else { + int height = (self.number * (bannerHeight + spacing)); + if(kaiAlign==0) { + height = (self.number * (bannerHeight + spacing)); + } else { + height = bannerHeight + spacing; + } + + if([self.superview.subviews count]>1) { + height = height - spacing; + } + self.heightConstraint.constant = height; + self.stack.heightConstraint.constant = height; + + UIStackView *s = (UIStackView *)(self.superview); + s.frame = CGRectMake(s.frame.origin.x, s.frame.origin.y, s.frame.size.width, (s.frame.size.height - 1)); + //literally does nothing but makes the stack view lay itself out (doesnt adjust frame because translatesAutoreszingMaskIntoConstraints = NO on stack views) + } + + }]; +} + -(void)refreshForPrefs { self.stack.spacing = kaiAlign==0 ? 0 : spacingHorizontal; [self setContentSize:self.stack.frame.size]; diff --git a/Kai.xm b/Kai.xm index b45e95d..6646df4 100755 --- a/Kai.xm +++ b/Kai.xm @@ -21,11 +21,21 @@ [(NCNotificationListView *)(KAISelf.superview) fixComplicationsViewFrame]; } - [[KAIBatteryPlatter sharedInstance] setNumber:[KAIBatteryPlatter sharedInstance].number]; + [[KAIBatteryPlatter sharedInstance] calculateHeight]; %orig; } +-(void)removeArrangedSubview:(id)arg1 { + %orig; + [[KAIBatteryPlatter sharedInstance] calculateHeight]; +} + +-(void)addArrangedSubview:(id)arg1 { + %orig; + [[KAIBatteryPlatter sharedInstance] calculateHeight]; +} + -(void)setStackView:(UIStackView *)arg1 { if(!KAISelf.hasKai) {