UIAppearance
The Face SDK exposes to the public API several UIViews that are used internally. The easiest way to customize them is to use the built-in UIAppearance proxy.
Info
For more information on UIAppearance
, see the official Apple Documentation.
Properties that are supposed to be modified via UIAppearance
are marked with a standard UI_APPEARANCE_SELECTOR
qualifier. Please see the SDK Reference guide to find out the complete list of supported customizations.
Warning
Please note that it is important to apply the UIAppearance
configuration as early as possible in your application lifecycle. In the provided example, the configuration is applied right in the AppDelegate
application(_: UIApplication, didFinishLaunchingWithOptions:...
.
Liveness Appearance Customization Example
import UIKit
import FaceSDK
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// HintView Styling
let hintViewAppearance = HintView.appearance(whenContainedInInstancesOf: [LivenessContentView.self])
hintViewAppearance.cornerRadius = 0
hintViewAppearance.setBackgroundColor(.yellow, for: .front)
hintViewAppearance.setTextColor(.black, for: .front)
let hintLabelAppearance = UILabel.appearance(whenContainedInInstancesOf: [HintView.self, LivenessContentView.self])
hintLabelAppearance.font = UIFont(name: "AmericanTypewriter", size: 17)
// Toolbar Styling
let toolbarAppearance = CameraToolbarView.appearance(whenContainedInInstancesOf: [LivenessContentView.self])
toolbarAppearance.backgroundColor = .yellow
toolbarAppearance.setTintColor(.black, for: .rear)
toolbarAppearance.setTintColor(.black, for: .front)
return true
}
}
#import "AppDelegate.h"
#import <FaceSDK/FaceSDK.h>
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// HintView Styling
RFSHintView *hintViewAppearance = [RFSHintView appearanceWhenContainedInInstancesOfClasses:@[RFSLivenessContentView.class]];
hintViewAppearance.cornerRadius = 0;
[hintViewAppearance setBackgroundColor:UIColor.yellowColor forState:RFSHintViewStateFront];
[hintViewAppearance setBackgroundColor:UIColor.blackColor forState:RFSHintViewStateFront];
UILabel *hintLabelAppearance = [UILabel appearanceWhenContainedInInstancesOfClasses:@[RFSHintView.class, RFSLivenessContentView.class]];
hintLabelAppearance.font = [UIFont systemFontOfSize:15 weight:UIFontWeightBold];
// Toolbar Styling
RFSCameraToolbarView *toolbarAppearance = [RFSCameraToolbarView appearanceWhenContainedInInstancesOfClasses:@[RFSLivenessContentView.class]];
toolbarAppearance.backgroundColor = UIColor.yellowColor;
[toolbarAppearance setTintColor:UIColor.blackColor forState:RFSCameraToolbarViewStateFront];
[toolbarAppearance setTintColor:UIColor.blackColor forState:RFSCameraToolbarViewStateRear];
return YES;
}
@end
See more customization examples in our open-source Catalog App.
Info
Sometimes, UIAppearance
is just not enough to get the UI adjustments you want. Please see Class Overriding for layout changes and even more fine-grained customizations.