Fixed image tinting
Summary: public A previous refactor introduced a bug where setting the tintColor of an <Image> to null no longer cleared the tint. This fixes it again. Reviewed By: javache Differential Revision: D2744279 fb-gh-sync-id: 1b5e0d546bf456d7b93e2ceee73c568c185c305c
This commit is contained in:
parent
6355011d17
commit
ce7c0b735f
|
@ -108,12 +108,6 @@ RCT_NOT_IMPLEMENTED(- (instancetype)init)
|
|||
}
|
||||
}
|
||||
|
||||
- (void)setTintColor:(UIColor *)tintColor
|
||||
{
|
||||
super.tintColor = tintColor;
|
||||
self.renderingMode = tintColor ? UIImageRenderingModeAlwaysTemplate : UIImageRenderingModeAlwaysOriginal;
|
||||
}
|
||||
|
||||
- (void)setRenderingMode:(UIImageRenderingMode)renderingMode
|
||||
{
|
||||
if (_renderingMode != renderingMode) {
|
||||
|
|
|
@ -33,6 +33,13 @@ RCT_EXPORT_VIEW_PROPERTY(onLoad, RCTDirectEventBlock)
|
|||
RCT_EXPORT_VIEW_PROPERTY(onLoadEnd, RCTDirectEventBlock)
|
||||
RCT_REMAP_VIEW_PROPERTY(resizeMode, contentMode, UIViewContentMode)
|
||||
RCT_EXPORT_VIEW_PROPERTY(source, RCTImageSource)
|
||||
RCT_EXPORT_VIEW_PROPERTY(tintColor, UIColor)
|
||||
RCT_CUSTOM_VIEW_PROPERTY(tintColor, UIColor, RCTImageView)
|
||||
{
|
||||
// Default tintColor isn't nil - it's inherited from the superView - but we
|
||||
// want to treat a null json value for `tintColor` as meaning 'disable tint',
|
||||
// so we toggle `renderingMode` here instead of in `-[RCTImageView setTintColor:]`
|
||||
view.tintColor = [RCTConvert UIColor:json] ?: defaultView.tintColor;
|
||||
view.renderingMode = json ? UIImageRenderingModeAlwaysTemplate : defaultView.renderingMode;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
Loading…
Reference in New Issue