CRToast
CRToast copied to clipboard
Swift 3 Unable to set dictionary properly
options.updateValue(CRToastType.navigationBar.rawValue as NSObject, forKey: kCRToastNotificationTypeKey as NSObject);
CRToastManager.showNotification(options: options, completionBlock: nil);
Even after setting kCRToastNotificationTypeKey to navigationbar, it still only cover the status bar.
This problem does not exists in Swift 2.2
Faced with the same issue.
For this moment I have found that this problem is hidden here.
- (void)setOptions:(NSDictionary *)options {
NSMutableDictionary *cleanOptions = [options mutableCopy];
[options enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
//Check keys validity followed by checking objects type validity
if ([kCRToastKeyClassMap.allKeys indexOfObject:key] == NSNotFound) {
NSLog(@"[CRToast] : ERROR given unrecognized key %@ in options with object %@",
key,
obj);
[cleanOptions removeObjectForKey:key];
} else if (![obj isKindOfClass:NSClassFromString(kCRToastKeyClassMap[key])]) {
NSLog(@"[CRToast] : ERROR given %@ for key %@ was expecting Class %@ but got Class %@, passing default on instead",
obj,
key,
kCRToastKeyClassMap[key],
NSStringFromClass([obj class]));
[cleanOptions removeObjectForKey:key];
}
}];
Clear keys
![obj isKindOfClass:NSClassFromString(kCRToastKeyClassMap[key])
Here is a solution that helped me
NSNumber(value: CRToastType.navigationBar.rawValue)
cause at enumeration we have a comparing with class.
If you have more than gust one key next dictionary should help you.
kCRToastActivityIndicatorViewStyleKey = "__NSCFNumber";
kCRToastAnimateInTimeInterval = "__NSCFNumber";
kCRToastAnimateOutTimeInterval = "__NSCFNumber";
kCRToastAnimateSpringVelocityKey = "__NSCFNumber";
kCRToastAnimationGravityMagnitudeKey = "__NSCFNumber";
kCRToastAnimationInDirectionKey = "__NSCFNumber";
kCRToastAnimationInTypeKey = "__NSCFNumber";
kCRToastAnimationOutDirectionKey = "__NSCFNumber";
kCRToastAnimationOutTypeKey = "__NSCFNumber";
kCRToastAnimationSpringDampingKey = "__NSCFNumber";
kCRToastAutorotateKey = "__NSCFBoolean";
kCRToastBackgroundColorKey = UIColor;
kCRToastBackgroundViewKey = UIView;
kCRToastCaptureDefaultWindowKey = "__NSCFBoolean";
kCRToastFontKey = UIFont;
kCRToastForceUserInteractionKey = "__NSCFBoolean";
kCRToastIdentifierKey = NSString;
kCRToastImageAlignmentKey = "__NSCFNumber";
kCRToastImageContentModeKey = "__NSCFNumber";
kCRToastImageKey = UIImage;
kCRToastImageTintKey = UIColor;
kCRToastInteractionRespondersKey = NSArray;
kCRToastKeepNavigationBarBorderKey = "__NSCFBoolean";
kCRToastNotificationPreferredHeightKey = "__NSCFNumber";
kCRToastNotificationPreferredPaddingKey = "__NSCFNumber";
kCRToastNotificationPresentationTypeKey = "__NSCFNumber";
kCRToastNotificationTypeKey = "__NSCFNumber";
kCRToastShowActivityIndicatorKey = "__NSCFBoolean";
kCRToastStatusBarStyleKey = "__NSCFNumber";
kCRToastSubtitleFontKey = UIFont;
kCRToastSubtitleTextAlignmentKey = "__NSCFNumber";
kCRToastSubtitleTextColorKey = UIColor;
kCRToastSubtitleTextKey = NSString;
kCRToastSubtitleTextMaxNumberOfLinesKey = "__NSCFNumber";
kCRToastSubtitleTextShadowColorKey = UIColor;
kCRToastSubtitleTextShadowOffsetKey = NSConcreteValue;
kCRToastTextAlignmentKey = "__NSCFNumber";
kCRToastTextColorKey = UIColor;
kCRToastTextKey = NSString;
kCRToastTextMaxNumberOfLinesKey = "__NSCFNumber";
kCRToastTextShadowColorKey = UIColor;
kCRToastTextShadowOffsetKey = NSConcreteValue;
kCRToastTimeIntervalKey = "__NSCFNumber";
kCRToastUnderStatusBarKey = "__NSCFBoolean";