@@ -737,8 +737,13 @@ - (CGSize)intrinsicContentSize {
737737 size = [self explicitSize ];
738738 }
739739 _visualContentSize = size;
740- return CGSizeMake (MAX (kMinimumTouchTarget , clampToMinimumSize.width ),
741- MAX (kMinimumTouchTarget , clampToMinimumSize.height ));
740+
741+ // The MAX function only takes two inputs but we need the max of clampToMinimumSize, size, and
742+ // kMinimumTouchTarget.
743+ CGSize minimumVisualSize = CGSizeMake (MAX (clampToMinimumSize.width , size.width ),
744+ MAX (clampToMinimumSize.height , size.height ));
745+ return CGSizeMake (MAX (kMinimumTouchTarget , minimumVisualSize.width ),
746+ MAX (kMinimumTouchTarget , minimumVisualSize.height ));
742747 } else {
743748 return clampToMinimumSize;
744749 }
@@ -758,8 +763,13 @@ - (CGSize)sizeThatFits:(CGSize)size {
758763 newSize = [self explicitSize ];
759764 }
760765 _visualContentSize = newSize;
761- return CGSizeMake (MAX (kMinimumTouchTarget , clampToMinimumSize.width ),
762- MAX (kMinimumTouchTarget , clampToMinimumSize.height ));
766+
767+ // The MAX function only takes two inputs but we need the max of clampToMinimumSize, size, and
768+ // kMinimumTouchTarget.
769+ CGSize minimumVisualSize = CGSizeMake (MAX (clampToMinimumSize.width , newSize.width ),
770+ MAX (clampToMinimumSize.height , newSize.height ));
771+ return CGSizeMake (MAX (kMinimumTouchTarget , minimumVisualSize.width ),
772+ MAX (kMinimumTouchTarget , minimumVisualSize.height ));
763773 } else {
764774 return clampToMinimumSize;
765775 }
0 commit comments