- UI: highlighting emerging setting stack

This commit is contained in:
TrueZhuanjia committed 2025-09-11 14:51:39 +08:00
1 parent d054bbe35f
commit 71f66fe8c0
1 file changed
+28 -10
@@ -825,11 +825,19 @@ BOOL isCustomResolution(int resolutionSelected) {
view.backgroundColor = [UIColor colorWithRed:0.5 green:0.5 blue:1 alpha:0.35]; view.backgroundColor = [UIColor colorWithRed:0.5 green:0.5 blue:1 alpha:0.35];
} }
- (void)highlightedBackgroundForView:(UIView* )view{ - (void)clearBackgroundColorForView:(UIView* )view animateWithDuration:(CGFloat)duration{
[UIView animateWithDuration:duration animations:^{
view.backgroundColor = [UIColor clearColor];
}];
}
- (void)highlightedBackgroundForView:(UIView* )view animateWithDuration:(CGFloat)duration{
[UIView animateWithDuration:duration animations:^{
view.layer.cornerRadius = 6; view.layer.cornerRadius = 6;
view.layer.masksToBounds = YES; view.layer.masksToBounds = YES;
view.clipsToBounds = YES; view.clipsToBounds = YES;
view.backgroundColor = [ThemeManager appPrimaryColorWithAlpha]; view.backgroundColor = [ThemeManager appPrimaryColorWithAlpha];
}];
} }
@@ -847,7 +855,7 @@ BOOL isCustomResolution(int resolutionSelected) {
settingStackWillBeRelocatedToLowestPosition = true; settingStackWillBeRelocatedToLowestPosition = true;
} }
else{ else{
[self highlightedBackgroundForView:currentStack]; [self highlightedBackgroundForView:currentStack animateWithDuration:0];
snapshot.backgroundColor = [UIColor clearColor]; snapshot.backgroundColor = [UIColor clearColor];
} }
} }
@@ -905,7 +913,7 @@ BOOL isCustomResolution(int resolutionSelected) {
if(currentSettingsMenuMode == AllSettings &&gesture.state == UIGestureRecognizerStateBegan) { if(currentSettingsMenuMode == AllSettings &&gesture.state == UIGestureRecognizerStateBegan) {
[self findCapturedStackByTouchLocation:locationInParentStack]; [self findCapturedStackByTouchLocation:locationInParentStack];
if(capturedStack == nil) return; if(capturedStack == nil) return;
[self highlightedBackgroundForView:capturedStack]; [self highlightedBackgroundForView:capturedStack animateWithDuration:0];
UIAlertController* actionSheet = [self prepareAddToFavoriteActionSheet]; UIAlertController* actionSheet = [self prepareAddToFavoriteActionSheet];
actionSheet.popoverPresentationController.sourceView = capturedStack; actionSheet.popoverPresentationController.sourceView = capturedStack;
[self presentViewController:actionSheet animated:YES completion:nil]; [self presentViewController:actionSheet animated:YES completion:nil];
@@ -1797,7 +1805,6 @@ BOOL isCustomResolution(int resolutionSelected) {
- (void)framePacingModeChanged:(UISegmentedControl *)sender { - (void)framePacingModeChanged:(UISegmentedControl *)sender {
// Hide frame queue size for Off and Legacy modes // Hide frame queue size for Off and Legacy modes
[self setHidden:(sender.selectedSegmentIndex == FramePacingModeOff || sender.selectedSegmentIndex == FramePacingModeLegacy) forStack:self.frameQueueSizeStack]; [self setHidden:(sender.selectedSegmentIndex == FramePacingModeOff || sender.selectedSegmentIndex == FramePacingModeLegacy) forStack:self.frameQueueSizeStack];
[videoSection updateViewForFoldState];
if(sender.selectedSegmentIndex == FramePacingModeOff || sender.selectedSegmentIndex == FramePacingModeLegacy){ if(sender.selectedSegmentIndex == FramePacingModeOff || sender.selectedSegmentIndex == FramePacingModeLegacy){
[self.enableGraphsSwitch setOn:NO]; [self.enableGraphsSwitch setOn:NO];
@@ -1806,7 +1813,6 @@ BOOL isCustomResolution(int resolutionSelected) {
[self.enableGraphsSwitch setEnabled:sender.selectedSegmentIndex == FramePacingModeQueue]; [self.enableGraphsSwitch setEnabled:sender.selectedSegmentIndex == FramePacingModeQueue];
[self.graphOpacityStepper setEnabled:self.enableGraphsSwitch.isOn]; [self.graphOpacityStepper setEnabled:self.enableGraphsSwitch.isOn];
[self setHidden:(sender.selectedSegmentIndex == FramePacingModeOff || sender.selectedSegmentIndex == FramePacingModeLegacy) forStack:self.performanceGraphStack]; [self setHidden:(sender.selectedSegmentIndex == FramePacingModeOff || sender.selectedSegmentIndex == FramePacingModeLegacy) forStack:self.performanceGraphStack];
[otherSection updateViewForFoldState];
/* /*
if (sender.selectedSegmentIndex == FramePacingModeLegacy) { if (sender.selectedSegmentIndex == FramePacingModeLegacy) {
@@ -1978,24 +1984,37 @@ BOOL isCustomResolution(int resolutionSelected) {
[self setHidden:![self isNotNativeTouchOnly] forStack:self.onScreenWidgetStack]; [self setHidden:![self isNotNativeTouchOnly] forStack:self.onScreenWidgetStack];
[self setHidden:![self isNotNativeTouchOnly] forStack:self.buttonVisualFeedbackStack]; [self setHidden:![self isNotNativeTouchOnly] forStack:self.buttonVisualFeedbackStack];
[self handleOswGestureChange]; [self handleOswGestureChange];
[touchAndControlSection updateViewForFoldState];
} }
- (void)emulatedControllerTypeChanged:(UISegmentedControl* )sender{ - (void)emulatedControllerTypeChanged:(UISegmentedControl* )sender{
[self setHidden:sender.selectedSegmentIndex == 0 forStack:_gyroModeStack]; [self setHidden:sender.selectedSegmentIndex == 0 forStack:_gyroModeStack];
[self setHidden:sender.selectedSegmentIndex == 0 forStack:_gyroSensitivityStack]; [self setHidden:sender.selectedSegmentIndex == 0 forStack:_gyroSensitivityStack];
[touchAndControlSection updateViewForFoldState];
} }
- (void)setHidden:(BOOL)hidden forStack:(UIStackView* )stack{ - (void)setHidden:(BOOL)hidden forStack:(UIStackView* )stack{
// CGFloat previousSpacing = stack.spacing; // CGFloat previousSpacing = stack.spacing;
if(hidden){ if(hidden){
stack.hidden = YES; stack.hidden = YES;
[hiddenStacks addObject:stack]; [self->hiddenStacks addObject:stack];
if([stack.superview.superview isKindOfClass:[MenuSectionView class]]){
MenuSectionView* section = (MenuSectionView* )stack.superview.superview;
[section updateViewForFoldState];
}
} }
else{ else{
stack.hidden = NO; stack.hidden = NO;
if([stack.superview.superview isKindOfClass:[MenuSectionView class]]){
MenuSectionView* section = (MenuSectionView* )stack.superview.superview;
[section updateViewForFoldState];
}
if([hiddenStacks containsObject:stack]){
[self highlightedBackgroundForView:stack animateWithDuration:0.2];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)),
dispatch_get_main_queue(), ^{
[self clearBackgroundColorForView:stack animateWithDuration:0.2];
});
}
[hiddenStacks removeObject:stack]; [hiddenStacks removeObject:stack];
} }
} }
@@ -2008,7 +2027,6 @@ BOOL isCustomResolution(int resolutionSelected) {
[self setHidden:!sender.isOn forStack:self.onScreenWidgetStack]; [self setHidden:!sender.isOn forStack:self.onScreenWidgetStack];
[self setHidden:!sender.isOn forStack:self.buttonVisualFeedbackStack]; [self setHidden:!sender.isOn forStack:self.buttonVisualFeedbackStack];
[self handleOswGestureChange]; [self handleOswGestureChange];
[touchAndControlSection updateViewForFoldState];
} }
- (void) updateBitrate { - (void) updateBitrate {