Updated for iOS 26 Beta 4:
// CornerConfigurationVisualEffectView.h
#import <UIKit/UIKit.h>
@interface CornerConfigurationVisualEffectView: UIVisualEffectView
- (void)setCornerRadius:(double)cornerRadius;
@end
// CornerConfigurationVisualEffectView.m
#import "CornerConfigurationVisualEffectView.h"
#import <objc/runtime.h>
// iOS 26 Beta 3/4 do not provide any way to customize the corner radius of glass views (FB18629279).
// This class exists as a temporary workaround until the corner configuration API is fully exposed.
@interface NSObject (iOS26Beta3BugFixes)
+ (id)uniform:(id)arg1;
+ (id)fixedWithRadius:(double)arg1;
- (id)setCornerConfiguration:(id)arg1;
@end
@interface NSObject (iOS26Beta4BugFixes)
+ (id)fixedRadius:(double)arg1;
+ (id)configurationWithUniformRadius:(id)arg1;
@end
@implementation CornerConfigurationVisualEffectView
//+ (void)printClassesContainingUICorner {
// int numClasses = objc_getClassList(NULL, 0);
// if (numClasses <= 0) return;
// Class *classes = (__unsafe_unretained Class *)malloc(sizeof(Class) * (unsigned long)numClasses);
// numClasses = objc_getClassList(classes, numClasses);
// for (int i = 0; i < numClasses; i++) {
// const char *name = class_getName(classes[i]);
// if (strstr(name, "UICorner") != NULL) {
// NSLog(@"%s", name);
// }
// }
// free(classes);
//}
- (void)setCornerRadius:(double)radius {
// [[self class] printClassesContainingUICorner];
Class uiCornerConfigurationClass = NSClassFromString(@"UICornerConfiguration");
if (uiCornerConfigurationClass == nil) {
return;
}
// iOS 26 Beta 3 API support
{
Class uiCornerStyleClass = NSClassFromString(@"UICornerStyle");
if (uiCornerStyleClass != nil
&& [uiCornerStyleClass respondsToSelector:@selector(fixedWithRadius:)]) {
id cornerStyle = [uiCornerStyleClass fixedWithRadius:radius];
if (![uiCornerConfigurationClass respondsToSelector:@selector(uniform:)]) {
return;
}
id configuration = [uiCornerConfigurationClass uniform:cornerStyle];
if (![self respondsToSelector:@selector(setCornerConfiguration:)]) {
return;
}
[self setCornerConfiguration:configuration];
return;
}
}
{
// iOS 26 Beta 4 API support
Class uiCornerRadiusClass = NSClassFromString(@"UICornerRadius");
if (uiCornerRadiusClass != nil
&& [uiCornerRadiusClass respondsToSelector:@selector(fixedRadius:)]) {
id cornerRadius = [uiCornerRadiusClass fixedRadius:radius];
if (![uiCornerConfigurationClass respondsToSelector:@selector(configurationWithUniformRadius:)]) {
return;
}
id configuration = [uiCornerConfigurationClass configurationWithUniformRadius:cornerRadius];
if (![self respondsToSelector:@selector(setCornerConfiguration:)]) {
return;
}
[self setCornerConfiguration:configuration];
return;
}
}
}
@end
Topic:
UI Frameworks
SubTopic:
UIKit
Tags: