Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
95361d3
Aspect fill the image on double tap
rivera-ernesto Dec 5, 2018
5a1e560
Merge branch 'doubletap_zoom'
rivera-ernesto Dec 13, 2019
c9f3d26
Pod update Demo
rivera-ernesto Dec 13, 2019
1ff3625
Listen for page control changes by default on explicitly set page con…
pm-dev Mar 28, 2020
df64ea8
Simplify default pageIndicator initialization
zvonicek Apr 12, 2020
122fef1
Make primaryVisiblePage private
zvonicek Apr 12, 2020
aecc448
Adjust pageIndicator update logic (fixes #376)
zvonicek Apr 12, 2020
7587b8e
Accessibility enhancement #356 (#367)
armandsavotins Apr 12, 2020
150be9b
Bump version
zvonicek Apr 12, 2020
234d430
Add support for Alamofire 4
zvonicek Apr 12, 2020
3b11e03
Update AlamofireImage dependency version in SPM
zvonicek Apr 12, 2020
94f561a
Completion block for presentFullScreenController function (#368)
maxpelna Jun 19, 2020
0831ce6
Set Kingfisher placeholder when request fails (fixes #380)
zvonicek Jun 19, 2020
d5db87e
Fix presentation issues on iOS 13 (#354, #366)
zvonicek Jun 19, 2020
db30f4c
Fix animated transition issues when presenter is formSheet (#378)
zvonicek Jun 21, 2020
6efafc1
Bump pod version
zvonicek Jun 21, 2020
5f653b0
Run SwiftLint autocorrect
zvonicek Jun 21, 2020
c1928c5
Update configuration files
zvonicek Jun 21, 2020
1ccf787
Release 1.9.0
zvonicek Jun 21, 2020
8620f51
Update README.md
zvonicek Jun 21, 2020
53286ac
fixed slideshowTransition bug (#387)
artsimonyan23 Jun 23, 2020
bd240b9
Release 1.9.1.
zvonicek Jun 23, 2020
0e2cea4
Bundle resources into the package (#400)
woxtu Dec 5, 2020
a54e24d
Bump version
zvonicek Dec 9, 2020
9a59001
Improve Dark Mode handling
zvonicek Jan 5, 2021
d0c2974
Merge branch 'doubletap_zoom'
rivera-ernesto Aug 14, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,6 @@ Carthage
# `pod install` in .travis.yml

Pods/

# Swift Package Manager
.build/
2 changes: 1 addition & 1 deletion .swift-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
4.2
5.2
18 changes: 11 additions & 7 deletions Example/ImageSlideshow.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
objects = {

/* Begin PBXBuildFile section */
43F0FAD42568BAEB008FFD39 /* Bundle+Module.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43F0FAD32568BAEB008FFD39 /* Bundle+Module.swift */; };
48A9DE9233FBEA3CF63A8E54 /* Pods_ImageSlideshow_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8AA07A6EDAC622F1407E6C80 /* Pods_ImageSlideshow_Example.framework */; };
607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD51AFB9204008FA782 /* AppDelegate.swift */; };
607FACD81AFB9204008FA782 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD71AFB9204008FA782 /* ViewController.swift */; };
Expand Down Expand Up @@ -46,6 +47,7 @@
/* Begin PBXFileReference section */
09417F1351C21E0DCE8667BE /* Pods-ImageSlideshow_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ImageSlideshow_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-ImageSlideshow_Example/Pods-ImageSlideshow_Example.release.xcconfig"; sourceTree = "<group>"; };
1C4985EDB005E63A830176CE /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = "<group>"; };
43F0FAD32568BAEB008FFD39 /* Bundle+Module.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "Bundle+Module.swift"; path = "../../ImageSlideshow/Classes/Core/Bundle+Module.swift"; sourceTree = "<group>"; };
5FD91AF3667236846934E8B9 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = "<group>"; };
607FACD01AFB9204008FA782 /* ImageSlideshow_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ImageSlideshow_Example.app; sourceTree = BUILT_PRODUCTS_DIR; };
607FACD41AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
Expand Down Expand Up @@ -207,20 +209,21 @@
D0E8A9E31D97EB6D007EC517 /* ImageSlideshow_framework */ = {
isa = PBXGroup;
children = (
F539204B210F03600057EFB3 /* SwiftSupport.swift */,
D0083DCD1EB739E700126B21 /* ActivityIndicator.swift */,
43F0FAD32568BAEB008FFD39 /* Bundle+Module.swift */,
D0E8A9EA1D97EB94007EC517 /* FullScreenSlideshowViewController.swift */,
D0B974AF202738F6006217CF /* PageIndicator.swift */,
F802998E20CE9EA7009D64DD /* PageIndicatorPosition.swift */,
D0E8A9E41D97EB6D007EC517 /* ImageSlideshow_framework.h */,
D0E8A9EB1D97EB94007EC517 /* ImageSlideshow.swift */,
D0083DCD1EB739E700126B21 /* ActivityIndicator.swift */,
D0E8A9EC1D97EB94007EC517 /* ImageSlideshowItem.swift */,
D0E8A9E51D97EB6D007EC517 /* Info.plist */,
D0E8A9ED1D97EB94007EC517 /* InputSource.swift */,
D0B974AF202738F6006217CF /* PageIndicator.swift */,
F802998E20CE9EA7009D64DD /* PageIndicatorPosition.swift */,
D00C7A2420B4C05C00E5725B /* Resources */,
F539204B210F03600057EFB3 /* SwiftSupport.swift */,
D0E8A9EE1D97EB94007EC517 /* UIImage+AspectFit.swift */,
D0E8A9EF1D97EB94007EC517 /* UIImageView+Tools.swift */,
D0E8A9F01D97EB94007EC517 /* ZoomAnimatedTransitioning.swift */,
D00C7A2420B4C05C00E5725B /* Resources */,
D0E8A9E41D97EB6D007EC517 /* ImageSlideshow_framework.h */,
D0E8A9E51D97EB6D007EC517 /* Info.plist */,
);
path = ImageSlideshow_framework;
sourceTree = "<group>";
Expand Down Expand Up @@ -453,6 +456,7 @@
D0E8A9F61D97EB94007EC517 /* UIImageView+Tools.swift in Sources */,
D0E8A9F71D97EB94007EC517 /* ZoomAnimatedTransitioning.swift in Sources */,
D0083DCE1EB739E700126B21 /* ActivityIndicator.swift in Sources */,
43F0FAD42568BAEB008FFD39 /* Bundle+Module.swift in Sources */,
F802999120CE9EA7009D64DD /* PageIndicatorPosition.swift in Sources */,
D0E8A9F51D97EB94007EC517 /* UIImage+AspectFit.swift in Sources */,
D0E8A9F11D97EB94007EC517 /* FullScreenSlideshowViewController.swift in Sources */,
Expand Down
44 changes: 29 additions & 15 deletions Example/ImageSlideshow/Base.lproj/Main.storyboard
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14109" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" colorMatched="YES" initialViewController="jSV-c3-hu2">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17506" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" colorMatched="YES" initialViewController="jSV-c3-hu2">
<device id="retina4_7" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17505"/>
<capability name="System colors in document resources" minToolsVersion="11.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
Expand All @@ -25,7 +24,7 @@
</tabBarController>
<placeholder placeholderIdentifier="IBFirstResponder" id="EDh-rt-MM7" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-865" y="157"/>
<point key="canvasLocation" x="-1253.6231884057972" y="105.13392857142857"/>
</scene>
<!--TableView-->
<scene sceneID="bbA-cr-xPo">
Expand All @@ -35,17 +34,16 @@
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<inset key="contentInset" minX="-15" minY="0.0" maxX="0.0" maxY="0.0"/>
<prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="default" indentationWidth="10" reuseIdentifier="reuseIdentifier" textLabel="yz8-QO-hsL" style="IBUITableViewCellStyleDefault" id="CmE-Ih-6iZ">
<rect key="frame" x="0.0" y="28" width="375" height="100"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="CmE-Ih-6iZ" id="rN2-1L-CiZ">
<rect key="frame" x="0.0" y="0.0" width="375" height="99.5"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="100"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="Title" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="yz8-QO-hsL">
<rect key="frame" x="16" y="0.0" width="344" height="99.5"/>
<rect key="frame" x="16" y="0.0" width="343" height="100"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/>
Expand All @@ -64,23 +62,34 @@
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="GoS-G9-pmD" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-277" y="619"/>
<point key="canvasLocation" x="-380" y="593"/>
</scene>
<!--Slideshow-->
<scene sceneID="ufC-wZ-h7g">
<objects>
<viewController id="vXZ-lx-hvc" customClass="ViewController" customModule="ImageSlideshow_Example" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="Aqf-BO-7mg"/>
<viewControllerLayoutGuide type="bottom" id="coz-Qs-EFC"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="kh9-bI-dsS">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<view contentMode="scaleToFill" id="L16-jC-HJe" customClass="ImageSlideshow" customModule="ImageSlideshow">
<rect key="frame" x="10" y="35" width="355" height="260"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="L16-jC-HJe" customClass="ImageSlideshow" customModule="ImageSlideshow">
<rect key="frame" x="10" y="40" width="355" height="260"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" constant="260" id="wMp-Gn-zRN"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstItem="L16-jC-HJe" firstAttribute="leading" secondItem="kh9-bI-dsS" secondAttribute="leading" constant="10" id="5Ub-dW-Gf0"/>
<constraint firstItem="L16-jC-HJe" firstAttribute="top" secondItem="Aqf-BO-7mg" secondAttribute="bottom" constant="40" id="P4M-C6-92x"/>
<constraint firstAttribute="trailing" secondItem="L16-jC-HJe" secondAttribute="trailing" constant="10" id="bJ6-xp-Uxp"/>
</constraints>
</view>
<tabBarItem key="tabBarItem" title="Slideshow" id="Jsp-k1-h2n"/>
<connections>
Expand All @@ -89,7 +98,12 @@
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="x5A-6p-PRh" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-271" y="-162"/>
<point key="canvasLocation" x="-392.75362318840581" y="-108.48214285714285"/>
</scene>
</scenes>
<resources>
<systemColor name="systemBackgroundColor">
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</systemColor>
</resources>
</document>
3 changes: 2 additions & 1 deletion Example/ImageSlideshow/TableViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ struct Model {

class TableViewController: UITableViewController {

let models = [Model(image: UIImage(named:"img1")!, title: "First image"), Model(image: UIImage(named: "img2")!, title: "Second image"), Model(image: UIImage(named: "img3")!, title: "Third image"), Model(image: UIImage(named: "img4")!, title: "Fourth image")]
let models = [Model(image: UIImage(named: "img1")!, title: "First image"), Model(image: UIImage(named: "img2")!, title: "Second image"), Model(image: UIImage(named: "img3")!, title: "Third image"), Model(image: UIImage(named: "img4")!, title: "Fourth image")]

var slideshowTransitioningDelegate: ZoomAnimatedTransitioningDelegate? = nil

Expand Down Expand Up @@ -52,6 +52,7 @@ class TableViewController: UITableViewController {

if let cell = tableView.cellForRow(at: indexPath), let imageView = cell.imageView {
slideshowTransitioningDelegate = ZoomAnimatedTransitioningDelegate(imageView: imageView, slideshowController: fullScreenController)
fullScreenController.modalPresentationStyle = .custom
fullScreenController.transitioningDelegate = slideshowTransitioningDelegate
}

Expand Down
7 changes: 2 additions & 5 deletions Example/ImageSlideshow/ViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,7 @@ class ViewController: UIViewController {
slideshow.pageIndicatorPosition = .init(horizontal: .center, vertical: .under)
slideshow.contentScaleMode = UIViewContentMode.scaleAspectFill

let pageControl = UIPageControl()
pageControl.currentPageIndicatorTintColor = UIColor.lightGray
pageControl.pageIndicatorTintColor = UIColor.black
slideshow.pageIndicator = pageControl
slideshow.pageIndicator = UIPageControl.withSlideshowColors()

// optional way to show activity indicator during image load (skipping the line will show no activity indicator)
slideshow.activityIndicator = DefaultActivityIndicator()
Expand All @@ -54,7 +51,7 @@ class ViewController: UIViewController {
}

extension ViewController: ImageSlideshowDelegate {
func imageSlideshow(_ imageSlideshow: ImageSlideshow, didChangeCurrentPageTo page: Int) {
func imageSlideshow(_ imageSlideshow: ImageSlideshow, didChangeCurrentPageTo page: Int) {
print("current page:", page)
}
}
46 changes: 22 additions & 24 deletions Example/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -14,30 +14,28 @@ PODS:
- AFNetworking/Serialization (3.2.1)
- AFNetworking/UIKit (3.2.1):
- AFNetworking/NSURLSession
- Alamofire (4.9.1)
- AlamofireImage (3.6.0):
- Alamofire (~> 4.9)
- ImageSlideshow (1.8.1):
- ImageSlideshow/Core (= 1.8.1)
- ImageSlideshow/AFURL (1.8.1):
- Alamofire (5.9.1)
- AlamofireImage (4.3.0):
- Alamofire (~> 5.8)
- ImageSlideshow (1.9.2):
- ImageSlideshow/Core (= 1.9.2)
- ImageSlideshow/AFURL (1.9.2):
- AFNetworking (~> 3.0)
- ImageSlideshow/Core
- ImageSlideshow/Alamofire (1.8.1):
- AlamofireImage (~> 3.0)
- ImageSlideshow/Alamofire (1.9.2):
- AlamofireImage (~> 4.0)
- ImageSlideshow/Core
- ImageSlideshow/Core (1.8.1)
- ImageSlideshow/Kingfisher (1.8.1):
- ImageSlideshow/Core (1.9.2)
- ImageSlideshow/Kingfisher (1.9.2):
- ImageSlideshow/Core
- Kingfisher (> 3.0)
- ImageSlideshow/SDWebImage (1.8.1):
- ImageSlideshow/SDWebImage (1.9.2):
- ImageSlideshow/Core
- SDWebImage (>= 3.7)
- Kingfisher (5.13.0):
- Kingfisher/Core (= 5.13.0)
- Kingfisher/Core (5.13.0)
- SDWebImage (5.5.1):
- SDWebImage/Core (= 5.5.1)
- SDWebImage/Core (5.5.1)
- Kingfisher (6.3.1)
- SDWebImage (5.19.6):
- SDWebImage/Core (= 5.19.6)
- SDWebImage/Core (5.19.6)

DEPENDENCIES:
- ImageSlideshow (from `../`)
Expand All @@ -59,13 +57,13 @@ EXTERNAL SOURCES:
:path: "../"

SPEC CHECKSUMS:
AFNetworking: b6f891fdfaed196b46c7a83cf209e09697b94057
Alamofire: 85e8a02c69d6020a0d734f6054870d7ecb75cf18
AlamofireImage: be9963c6582d68b39e89191f64c82a7d7bf40fdd
ImageSlideshow: f088eda262a51187cc50ca898f5f880fd52b9b00
Kingfisher: 0d334cada987fcddbe9b5cec516406e1ee9d4748
SDWebImage: 1245d058b7b8f59adef7a6da6bbafd4f1ab67041
AFNetworking: cb604b1c2bded0871f5f61f5d53653739e841d6b
Alamofire: f36a35757af4587d8e4f4bfa223ad10be2422b8c
AlamofireImage: 843953fa97bee5f561cf05d83abd759e590b068d
ImageSlideshow: be305b54eaf2b2cfc7a7141c7c734605d44dc07d
Kingfisher: 016c8b653a35add51dd34a3aba36b580041acc74
SDWebImage: a79252b60f4678812d94316c91da69ec83089c9f

PODFILE CHECKSUM: 46015634277c8c8bfd78d1b363e41ea2dfd179d9

COCOAPODS: 1.8.4
COCOAPODS: 1.15.2
15 changes: 11 additions & 4 deletions ImageSlideshow.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

Pod::Spec.new do |s|
s.name = "ImageSlideshow"
s.version = "1.8.3"
s.version = "1.9.2"
s.summary = "Image slideshow written in Swift with circular scrolling, timer and full screen viewer"

# This description is used to generate tags and improve search results.
Expand All @@ -21,13 +21,13 @@ Image slideshow is a Swift library providing customizable image slideshow with c
DESC

s.homepage = "https://github.com/zvonicek/ImageSlideshow"
s.screenshots = "http://cl.ly/image/2v193I0G0h0Z/ImageSlideshow2.gif"
s.screenshots = "https://dzwonsemrish7.cloudfront.net/items/2R06283n040V3P3p0i42/ezgif.com-optimize.gif"
s.license = 'MIT'
s.author = { "Petr Zvonicek" => "[email protected]" }
s.source = { :git => "https://github.com/zvonicek/ImageSlideshow.git", :tag => s.version.to_s }
s.social_media_url = 'https://twitter.com/zvonicek'

s.swift_versions = ['4.0', '4.1', '4.2', '5', '5.1']
s.swift_versions = ['4.0', '4.1', '4.2', '5', '5.1', '5.2']
s.platform = :ios, '8.0'
s.requires_arc = true

Expand All @@ -42,9 +42,16 @@ Image slideshow is a Swift library providing customizable image slideshow with c
subspec.source_files = 'ImageSlideshow/Classes/InputSources/AFURLSource.swift'
end

s.subspec 'Alamofire' do |subspec|
s.subspec 'Alamofire3' do |subspec|
subspec.dependency 'ImageSlideshow/Core'
subspec.dependency 'AlamofireImage', '~> 3.0'
subspec.source_files = 'ImageSlideshow/Classes/InputSources/AlamofireLegacySource.swift'
end

s.subspec 'Alamofire' do |subspec|
subspec.dependency 'ImageSlideshow/Core'
subspec.dependency 'AlamofireImage', '~> 4.0'
subspec.platform = :ios, '10.0'
subspec.source_files = 'ImageSlideshow/Classes/InputSources/AlamofireSource.swift'
end

Expand Down
2 changes: 1 addition & 1 deletion ImageSlideshow/Classes/Core/ActivityIndicator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ extension UIActivityIndicatorView: ActivityIndicatorView {
open class DefaultActivityIndicator: ActivityIndicatorFactory {
/// activity indicator style
open var style: UIActivityIndicatorViewStyle

/// activity indicator color
open var color: UIColor?

Expand Down
16 changes: 16 additions & 0 deletions ImageSlideshow/Classes/Core/Bundle+Module.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
//
// Bundle+Module.swift
// ImageSlideshow
//
// Created by woxtu on 20/11/21.
//

import Foundation

#if !SWIFT_PACKAGE
extension Bundle {
static var module: Bundle = {
return Bundle(for: ImageSlideshow.self)
}()
}
#endif
Loading