@@ -4,36 +4,6 @@ import { isString } from '@nativescript/core/utils/types';
44import { RESOURCE_PREFIX , isFileOrResourcePath , isFontIconURI , layout } from '@nativescript/core/utils/utils' ;
55import { CLog , CLogTypes , EventData , ImageBase , ImageInfo as ImageInfoBase , ImagePipelineConfigSetting , ScaleType , Stretch } from './image-common' ;
66
7- @NativeClass
8- class SDImageRoundAsCircleTransformer extends NSObject implements SDImageTransformer {
9- public static ObjCProtocols = [ SDImageTransformer ] ;
10-
11- static transformer ( ) {
12- const transformer = SDImageRoundAsCircleTransformer . alloc ( ) . init ( ) ;
13-
14- return transformer ;
15- }
16-
17- get transformerKey ( ) {
18- return 'SDImageRoundAsCircleTransformer' ;
19- }
20-
21- transformedImageWithImageForKey ( image : UIImage , key : string ) {
22- if ( ! image ) {
23- return null ;
24- }
25- const width = image . size . width ;
26- const height = image . size . height ;
27- const minwidth = Math . min ( width , height ) ;
28- const cornerRadius = minwidth / 2 ;
29- const result = ( image as any )
30- . sd_resizedImageWithSizeScaleMode ( CGSizeMake ( minwidth , minwidth ) , SDImageScaleMode . AspectFill )
31- . sd_roundedCornerImageWithRadiusCornersBorderWidthBorderColor ( cornerRadius , UIRectCorner . BottomLeft | UIRectCorner . BottomRight | UIRectCorner . TopLeft | UIRectCorner . TopRight , 0 , null )
32- . sd_resizedImageWithSizeScaleMode ( CGSizeMake ( width , height ) , SDImageScaleMode . AspectFit ) ;
33- return result ;
34- }
35- }
36-
377export class ImageInfo implements ImageInfoBase {
388 constructor ( private width : number , private height : number ) { }
399
@@ -219,11 +189,11 @@ function getUri(src: string | ImageAsset) {
219189}
220190
221191export class Img extends ImageBase {
222- nativeViewProtected : SDAnimatedImageView ;
192+ nativeViewProtected : SDAnimatedImageView | UIImageView ;
223193 isLoading = false ;
224194 private _imageSourceAffectsLayout : boolean = true ;
225195 public createNativeView ( ) {
226- const result = SDAnimatedImageView . new ( ) ;
196+ const result = this . animatedImageView ? SDAnimatedImageView . new ( ) : UIImageView . new ( ) ;
227197 result . contentMode = UIViewContentMode . ScaleAspectFit ;
228198 result . clipsToBounds = true ;
229199 result . userInteractionEnabled = true ; // needed for gestures to work
@@ -420,6 +390,7 @@ export class Img extends ImageBase {
420390 }
421391 this . isLoading = true ;
422392 let options = SDWebImageOptions . ScaleDownLargeImages | SDWebImageOptions . AvoidAutoSetImage ;
393+
423394 if ( this . alwaysFade === true ) {
424395 options |= SDWebImageOptions . ForceTransition ;
425396 }
@@ -438,8 +409,10 @@ export class Img extends ImageBase {
438409 if ( this . blurRadius ) {
439410 transformers . push ( SDImageBlurTransformer . transformerWithRadius ( this . blurRadius ) ) ;
440411 }
412+ console . log ( 'roundAsCircle' , this . roundAsCircle , this . style [ 'roundAsCircle' ] ) ;
441413 if ( this . roundAsCircle === true ) {
442- transformers . push ( SDImageRoundAsCircleTransformer . new ( ) ) ;
414+ //@ts -ignore
415+ transformers . push ( NSImageRoundAsCircleTransformer . transformer ( ) ) ;
443416 }
444417 if ( this . roundBottomLeftRadius || this . roundBottomRightRadius || this . roundTopLeftRadius || this . roundTopRightRadius ) {
445418 //@ts -ignore
@@ -450,6 +423,10 @@ export class Img extends ImageBase {
450423 layout . toDeviceIndependentPixels ( this . roundBottomLeftRadius ) ) ) ;
451424 }
452425 if ( transformers . length > 0 ) {
426+ if ( this . animatedImageView ) {
427+ // as we use SDAnimatedImageView all images are loaded as SDAnimatedImage;
428+ options |= SDWebImageOptions . TransformAnimatedImage ;
429+ }
453430 context . setValueForKey ( SDImagePipelineTransformer . transformerWithTransformers ( transformers ) , SDWebImageContextImageTransformer ) ;
454431 }
455432 this . nativeViewProtected . sd_setImageWithURLPlaceholderImageOptionsContextProgressCompleted (
0 commit comments