{"id":382,"date":"2017-04-03T06:38:27","date_gmt":"2017-04-03T06:38:27","guid":{"rendered":"http:\/\/inwizards.com\/blog\/?p=382"},"modified":"2023-11-06T06:32:44","modified_gmt":"2023-11-06T06:32:44","slug":"how-to-search-photos-using-flickr-api-in-swift-2-0","status":"publish","type":"post","link":"https:\/\/www.inwizards.com\/blog\/how-to-search-photos-using-flickr-api-in-swift-2-0\/","title":{"rendered":"How to Search Photos Using Flickr API In Swift 2.0"},"content":{"rendered":"<p>So you want to know How to Search Photos Using Flickr API In Swift 2.0? Don&#8217;t worry Inwizards, a leading <strong><a href=\"https:\/\/www.inwizards.com\/\">Software Development Company<\/a><\/strong> has expert developers that has solution to your query.<\/p>\n<p><strong>Let Dive in and understand:\u00a0<\/strong><\/p>\n<p><span style=\"color: #000000;\"><strong>Step 1:<\/strong> Create a Project<\/span><\/p>\n<p align=\"justify\"><span style=\"color: #000000;\">After opening XCode, click on the <em>&#8220;File&#8221;<\/em> menu, hover over the <em>&#8220;New&#8221;<\/em>\u00a0option, and then select <em>&#8220;Project&#8221;<\/em>.<\/span><\/p>\n<p align=\"justify\"><span style=\"color: #000000;\">So there are see a number of templates for creating iOS applications. These templates all include some default code that can help save us time. We\u2019ll choose the \u201cSingle View Application\u201d option for now. This comes with the smallest amount of default code, making it the best option for learning the basics.<\/span><\/p>\n<p><span style=\"color: #000000;\">Click the <em>&#8220;Next&#8221;<\/em>\u00a0button and fill out the following details:<\/span><br \/>\n<span style=\"color: #000000;\"> Product Name. This is the name of your application.<\/span><br \/>\n<span style=\"color: #000000;\"> Organization Name. Enter your name or your company\u2019s name.<\/span><br \/>\n<span style=\"color: #000000;\"> Organization Identifier. Usually, this is formatted as a reverse domain name (so something <span style=\"color: #0000ff;\">com.inw.myApp<\/span>).<\/span><br \/>\n<span style=\"color: #000000;\"> Language. Set this to \u201cSwift\u201d.<\/span><br \/>\n<span style=\"color: #000000;\"> Devices. Set this to \u201ciPhone\u201d.<\/span><br \/>\n<span style=\"color: #000000;\"> Use Core Data. Leave this unchecked.<\/span><br \/>\n<script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script><br \/>\n<ins class=\"adsbygoogle\" style=\"display: block; text-align: center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-1542270097115731\" data-ad-slot=\"5976953901\"><\/ins><br \/>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/p>\n<p align=\"justify\"><span style=\"color: #000000;\">Click the <em>&#8220;Next&#8221;<\/em> button again. A dialog box will appear to save the project, so choose whatever location is convenient.<\/span><\/p>\n<p align=\"justify\"><img loading=\"lazy\" class=\"aligncenter wp-image-383 size-full\" src=\"https:\/\/i2.wp.com\/www.inwizards.com\/blog\/wp-content\/uploads\/2017\/04\/Search-Photos-Using-Flickr-API-In-Swift-2.0.png?resize=754%2C668&#038;ssl=1\" alt=\"\" width=\"754\" height=\"668\" srcset=\"https:\/\/i2.wp.com\/www.inwizards.com\/blog\/wp-content\/uploads\/2017\/04\/Search-Photos-Using-Flickr-API-In-Swift-2.0.png?w=754&amp;ssl=1 754w, https:\/\/i2.wp.com\/www.inwizards.com\/blog\/wp-content\/uploads\/2017\/04\/Search-Photos-Using-Flickr-API-In-Swift-2.0.png?resize=300%2C266&amp;ssl=1 300w\" sizes=\"(max-width: 754px) 100vw, 754px\" data-recalc-dims=\"1\" \/><\/p>\n<p><span style=\"color: #000000;\"><strong>Step 2:<\/strong> Design an Interface<\/span><\/p>\n<p align=\"justify\"><span style=\"color: #000000;\">On the left side of the screen, we can see the \u201cNavigator\u201d pane. This is what we use to navigate the files in our project. There\u2019s a few files that Xcode creates for us, but for the moment, click on the <span style=\"color: #0000ff;\">Main.storyboard<\/span> file.<\/span><\/p>\n<p align=\"justify\"><span style=\"color: #000000;\">1. Select the Collection View and go to the Size Inspector. In the Collection View Section set the Cell size to a width and height of 110 points.<\/span><\/p>\n<p align=\"justify\"><span style=\"color: #000000;\">2. Drag an Image View from the Object Library inside the Collection View Cell and make sure the height and width is also 50 points. Select the Image View and go to the Attribute Inspector. In the View Section set the Mode to \u201cAspect Fit\u201d<\/span><\/p>\n<p align=\"justify\"><span style=\"color: #000000;\">3. Next, create a class for the custom Collection View Cell. Add a new file to the project. Select File -&gt; New File -&gt; iOS -&gt; Source -&gt; Cocoa Touch Class. Name the class <span style=\"color: #0000ff;\">CollectionCell<\/span> and make it a subclass of UICollectionViewCell.<\/span><\/p>\n<p align=\"justify\"><span style=\"color: #000000;\">4. Go back to the Storyboard and select the Collection View Cell. Go to the Identity Inspector and in the Custom Class section change the Class to\u00a0<em><span style=\"color: #0000ff;\">&#8221; CollectionCell&#8221;<\/span><\/em><\/span><\/p>\n<p align=\"justify\"><span style=\"color: #000000;\">5. Select the Assistant Editor and make sure the <span style=\"color: #0000ff;\">CollectionCell.swift<\/span> file is visible. Ctrl and drag from the Image View to the CollectionCell class and create the following Outlet.<\/span><\/p>\n<p><span style=\"color: #000000;\">Go to <span style=\"color: #0000ff;\">CollectionCell.swift<\/span> file and add the following property<\/span><br \/>\n<span style=\"color: #000000;\"><span style=\"color: #0000ff;\"> @IBOutlet<\/span> var ImageView: <span style=\"color: #33cccc;\">UIImageView!<\/span><\/span><br \/>\n<span style=\"color: #000000;\"> Add third party libraries from helper class folder to your Xcode project<\/span><br \/>\n<span style=\"color: #000000;\"> AFNetworking<\/span><br \/>\n<span style=\"color: #000000;\"> UIKit+AFNetworking<\/span><br \/>\n<span style=\"color: #000000;\"> SDWebImage<\/span><br \/>\n<span style=\"color: #000000;\"> Add Bridging Header<\/span><\/p>\n<p align=\"justify\"><span style=\"color: #000000;\">As AFNetworking, UIKit+AFNetworking, SDWebImage is available in Objective C, we need to add bridging header to our Swift project. By using bridging header, we can use Objective C code in our Swift application.<\/span><\/p>\n<p><span style=\"color: #000000;\">To add bridging header to the project<\/span><br \/>\n<span style=\"color: #000000;\"> Create new file by <em>File<\/em> &gt;&gt; <em>New<\/em> &gt;&gt; <em>File<\/em> from the menu to add temporary file.<\/span><br \/>\n<span style=\"color: #000000;\"> Select Objective-C File.<\/span><br \/>\n<span style=\"color: #000000;\"> Click Next.<\/span><br \/>\n<span style=\"color: #000000;\"> Add File Name.<\/span><br \/>\n<span style=\"color: #000000;\"> Click on Next.<\/span><br \/>\n<span style=\"color: #000000;\"> Click on Create.<\/span><br \/>\n<span style=\"color: #000000;\"> It will ask to configure Objective-C bridging header.<\/span><br \/>\n<span style=\"color: #000000;\"> Click on Create Bridging Header button.<\/span><br \/>\n<span style=\"color: #000000;\"> It will create Objective-C bridging header file.<\/span><br \/>\n<span style=\"color: #000000;\"> Add following line of code to Bridging Header file<\/span><\/p>\n<p class=\"western\"><span style=\"color: #000000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">#import \u201cAFNetworking.h\u201d<\/span><\/span><\/span><\/p>\n<p><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script><br \/>\n<ins class=\"adsbygoogle\" style=\"display: block; text-align: center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-1542270097115731\" data-ad-slot=\"5976953901\"><\/ins><br \/>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><span style=\"color: #0000ff;\">#import <\/span><span style=\"color: #a31515;\">\u201cUIImageView+WebCache.h\u201d<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #393939;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">Get Flickr API Key from Developer flickr now go to this link: <\/span><\/span><\/span><a href=\"https:\/\/www.flickr.com\/services\/developer\/api\/\"><span style=\"color: #627f9a;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\">flickr<\/span><\/span><\/span><\/a><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: large;\"><span style=\"color: #393939;\">Now goto <\/span><span style=\"color: #86133e;\">AlbumViewController.swift<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">import<\/span> UIKit<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">class<\/span> AlbumViewController:<span style=\"color: #2b839f;\">UIViewController<\/span>,<span style=\"color: #2b839f;\">UICollectionViewDataSource<\/span>,<span style=\"color: #2b839f;\">UICollectionViewDelegate<\/span>,<span style=\"color: #2b839f;\">UITextFieldDelegate<\/span>,<span style=\"color: #2b839f;\">UICollectionViewDelegateFlowLayout<\/span> {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #008000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">\/\/ MARK: Create Outlets and Proprty.<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #008000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">\/\/*****************************************************************<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">@IBOutlet<\/span> <span style=\"color: #0000ff;\">weak<\/span> <span style=\"color: #0000ff;\">var<\/span> AlbumCollection:<span style=\"color: #2b839f;\">UICollectionView<\/span>!<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">@IBOutlet<\/span> <span style=\"color: #0000ff;\">weak<\/span> <span style=\"color: #0000ff;\">var<\/span> SearchText:<span style=\"color: #2b839f;\">UITextField<\/span>!<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">var<\/span> sectionInsets = <span style=\"color: #2b839f;\">UIEdgeInsets<\/span>(top: 0.0, left: 0.0, bottom: 0.0, right: 0.0)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">var<\/span> searches = [<span style=\"color: #2b839f;\">FlickrSearchResults<\/span>]()<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">var<\/span> flickr = <span style=\"color: #2b839f;\">Flickr<\/span>()<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">var<\/span> flickrPhoto:<span style=\"color: #2b839f;\">FlickrPhoto<\/span>!<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #008000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">\/\/ MARK: ViewDidLoad<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #008000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">\/\/*****************************************************************<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">override<\/span> <span style=\"color: #0000ff;\">func<\/span> viewDidLoad() {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">super<\/span>.<span style=\"color: #2b839f;\">viewDidLoad<\/span>()<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">self<\/span>.<span style=\"color: #2b839f;\">SearchText<\/span>.<span style=\"color: #2b839f;\">delegate<\/span> = <span style=\"color: #0000ff;\">self<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">let<\/span> dismiss: <span style=\"color: #2b839f;\">UITapGestureRecognizer<\/span> = <span style=\"color: #2b839f;\">UITapGestureRecognizer<\/span>(target: <span style=\"color: #0000ff;\">self<\/span>, action: <span style=\"color: #a31515;\">\u201cDismissKeyboard\u201d<\/span>)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">view<\/span>.<span style=\"color: #2b839f;\">addGestureRecognizer<\/span>(dismiss)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">override<\/span> <span style=\"color: #0000ff;\">func<\/span> prefersStatusBarHidden() -&gt; <span style=\"color: #2b839f;\">Bool<\/span> {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">return<\/span> <span style=\"color: #0000ff;\">true<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script><br \/>\n<ins class=\"adsbygoogle\" style=\"display: block; text-align: center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-1542270097115731\" data-ad-slot=\"5976953901\"><\/ins><br \/>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/p>\n<p class=\"western\"><span style=\"color: #008000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">\/\/ MARK: UITextField Delegate Method.<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #008000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">\/\/*****************************************************************<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">func<\/span> DismissKeyboard(){<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">view<\/span>.<span style=\"color: #2b839f;\">endEditing<\/span>(<span style=\"color: #0000ff;\">true<\/span>)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">SearchText<\/span>.<span style=\"color: #2b839f;\">resignFirstResponder<\/span>()<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">func<\/span> textFieldDidEndEditing(textField: <span style=\"color: #2b839f;\">UITextField<\/span>) {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">SearchText<\/span>.<span style=\"color: #2b839f;\">resignFirstResponder<\/span>()<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">func<\/span> textField(textField: <span style=\"color: #2b839f;\">UITextField<\/span>, shouldChangeCharactersInRange range: <span style=\"color: #2b839f;\">NSRange<\/span>, replacementString string: <span style=\"color: #2b839f;\">String<\/span>) -&gt; <span style=\"color: #2b839f;\">Bool<\/span> {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">if<\/span>(string == <span style=\"color: #a31515;\">\u201c\\n\u201d<\/span>){<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">SearchText<\/span>.<span style=\"color: #2b839f;\">resignFirstResponder<\/span>()<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">return<\/span> <span style=\"color: #0000ff;\">false<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">return<\/span> <span style=\"color: #0000ff;\">true<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">func<\/span> textFieldShouldReturn(textField: <span style=\"color: #2b839f;\">UITextField<\/span>) -&gt; <span style=\"color: #2b839f;\">Bool<\/span> {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">let<\/span> activityIndicator = <span style=\"color: #2b839f;\">UIActivityIndicatorView<\/span>(activityIndicatorStyle: .<span style=\"color: #2b839f;\">Gray<\/span>)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">textField.<span style=\"color: #2b839f;\">addSubview<\/span>(activityIndicator)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">activityIndicator.<span style=\"color: #2b839f;\">frame<\/span> = textField.<span style=\"color: #2b839f;\">bounds<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">activityIndicator.<span style=\"color: #2b839f;\">startAnimating<\/span>()<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">let<\/span> searchStr:<span style=\"color: #2b839f;\">String<\/span> = <span style=\"color: #2b839f;\">SearchText<\/span>.<span style=\"color: #2b839f;\">text<\/span>!<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">flickr<\/span>.<span style=\"color: #2b839f;\">searchFlickrForTerm<\/span>(searchStr) {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">results, error <span style=\"color: #0000ff;\">in<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">activityIndicator.<span style=\"color: #2b839f;\">removeFromSuperview<\/span>()<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">if<\/span> error != <span style=\"color: #0000ff;\">nil<\/span> {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">print<\/span>(<span style=\"color: #a31515;\">\u201cError searching : <\/span>\\<span style=\"color: #a31515;\">(<\/span>error<span style=\"color: #a31515;\">)\u201d<\/span>)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">let<\/span> alert:<span style=\"color: #2b839f;\">UIAlertView<\/span> = <span style=\"color: #2b839f;\">UIAlertView<\/span>(title: <span style=\"color: #a31515;\">\u201cError\u201d<\/span>, message: <span style=\"color: #a31515;\">\u201cSomething went wrong please try again.\u201d<\/span>, delegate: <span style=\"color: #0000ff;\">self<\/span>, cancelButtonTitle: <span style=\"color: #a31515;\">\u201cOK\u201d<\/span>)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">alert.<span style=\"color: #2b839f;\">show<\/span>()<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">if<\/span> results != <span style=\"color: #0000ff;\">nil<\/span> {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">print<\/span>(<span style=\"color: #a31515;\">\u201cFound <\/span>\\<span style=\"color: #a31515;\">(<\/span>results!.<span style=\"color: #2b839f;\">searchResults<\/span>.<span style=\"color: #2b839f;\">count<\/span><span style=\"color: #a31515;\">) matching <\/span>\\<span style=\"color: #a31515;\">(<\/span>results!.<span style=\"color: #2b839f;\">searchTerm<\/span><span style=\"color: #a31515;\">)\u201d<\/span>)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">self<\/span>.<span style=\"color: #2b839f;\">searches<\/span>.<span style=\"color: #2b839f;\">insert<\/span>(results!, atIndex: 0)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">self<\/span>.<span style=\"color: #2b839f;\">AlbumCollection<\/span>?.<span style=\"color: #2b839f;\">reloadData<\/span>()<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">SearchText<\/span>.<span style=\"color: #2b839f;\">text<\/span> = <span style=\"color: #0000ff;\">nil<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">SearchText<\/span>.<span style=\"color: #2b839f;\">resignFirstResponder<\/span>()<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">return<\/span> <span style=\"color: #0000ff;\">true<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #008000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">\/\/ Get index path of filtered image from Flickr.<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">func<\/span> photoForIndexPath(indexPath: <span style=\"color: #2b839f;\">NSIndexPath<\/span>) -&gt; <span style=\"color: #2b839f;\">FlickrPhoto<\/span> {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">return<\/span> <span style=\"color: #2b839f;\">searches<\/span>[indexPath.<span style=\"color: #2b839f;\">section<\/span>].<span style=\"color: #2b839f;\">searchResults<\/span>[indexPath.<span style=\"color: #2b839f;\">row<\/span>]<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #008000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">\/\/ MARK: CollectionView DataSource and Delegate Method.<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #008000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">\/\/*****************************************************************<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">func<\/span> numberOfSectionsInCollectionView(collectionView: <span style=\"color: #2b839f;\">UICollectionView<\/span>) -&gt; <span style=\"color: #2b839f;\">Int<\/span> {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">return<\/span> <span style=\"color: #2b839f;\">searches<\/span>.<span style=\"color: #2b839f;\">count<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script><br \/>\n<ins class=\"adsbygoogle\" style=\"display: block; text-align: center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-1542270097115731\" data-ad-slot=\"5976953901\"><\/ins><br \/>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">func<\/span> collectionView(collectionView: <span style=\"color: #2b839f;\">UICollectionView<\/span>, numberOfItemsInSection section: <span style=\"color: #2b839f;\">Int<\/span>) -&gt; <span style=\"color: #2b839f;\">Int<\/span> {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">return<\/span> <span style=\"color: #2b839f;\">searches<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Lato, helvetica, arial, sans-serif;\"><span style=\"font-size: medium;\">.<\/span><\/span><\/span><span style=\"font-family: Lato, helvetica, arial, sans-serif;\"><span style=\"font-size: medium;\">searchResults<\/span><\/span><span style=\"color: #777777;\"><span style=\"font-family: Lato, helvetica, arial, sans-serif;\">.<\/span><\/span><span style=\"font-family: Lato, helvetica, arial, sans-serif;\"><span style=\"font-size: medium;\">count<\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">func<\/span> collectionView(collectionView: <span style=\"color: #2b839f;\">UICollectionView<\/span>, cellForItemAtIndexPath indexPath: <span style=\"color: #2b839f;\">NSIndexPath<\/span>) -&gt;<span style=\"color: #2b839f;\">UICollectionViewCell<\/span> {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">let<\/span> cell : <span style=\"color: #2b839f;\">CollectionCell<\/span> = <span style=\"color: #2b839f;\">AlbumCollection<\/span>.<span style=\"color: #2b839f;\">dequeueReusableCellWithReuseIdentifier<\/span>(<span style=\"color: #a31515;\">\u201cCell\u201d<\/span>, forIndexPath: indexPath) <span style=\"color: #0000ff;\">as<\/span>! <span style=\"color: #2b839f;\">CollectionCell<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">flickrPhoto<\/span> = <span style=\"color: #2b839f;\">photoForIndexPath<\/span>(indexPath)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">cell.<span style=\"color: #2b839f;\">backgroundColor<\/span> = <span style=\"color: #2b839f;\">UIColor<\/span>.<span style=\"color: #2b839f;\">blackColor<\/span>()<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">cell.<span style=\"color: #2b839f;\">ImageView<\/span>.<span style=\"color: #2b839f;\">image<\/span> = <span style=\"color: #2b839f;\">flickrPhoto<\/span>.<span style=\"color: #2b839f;\">thumbnail<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">return<\/span> cell<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">func<\/span> collectionView(collectionView: <span style=\"color: #2b839f;\">UICollectionView<\/span>, didSelectItemAtIndexPath indexPath: <span style=\"color: #2b839f;\">NSIndexPath<\/span>) {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #2b839f;\">flickrPhoto<\/span> = <span style=\"color: #2b839f;\">photoForIndexPath<\/span>(indexPath)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">self<\/span>.<span style=\"color: #2b839f;\">performSegueWithIdentifier<\/span>(<span style=\"color: #a31515;\">\u201cfullimage\u201d<\/span>, sender: indexPath)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">func<\/span> collectionView(collectionView: <span style=\"color: #2b839f;\">UICollectionView<\/span>,layout collectionViewLayout:<span style=\"color: #2b839f;\">UICollectionViewLayout<\/span>,insetForSectionAtIndex section: <span style=\"color: #2b839f;\">Int<\/span>) -&gt; <span style=\"color: #2b839f;\">UIEdgeInsets<\/span> {<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">return<\/span> <span style=\"color: #2b839f;\">sectionInsets<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #008000;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">\/\/ Navigate to FullViewController for show full image.<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">override<\/span> <span style=\"color: #0000ff;\">func<\/span> prepareForSegue(segue: <span style=\"color: #2b839f;\">UIStoryboardSegue<\/span>, sender: <span style=\"color: #2b839f;\">AnyObject<\/span>?)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">{<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">if<\/span> (segue.<span style=\"color: #2b839f;\">identifier<\/span> == <span style=\"color: #a31515;\">\u201cfullimage\u201d<\/span>)<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">{<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\"><span style=\"color: #0000ff;\">let<\/span> ObjVC = segue.<span style=\"color: #2b839f;\">destinationViewController<\/span> <span style=\"color: #0000ff;\">as<\/span>! <span style=\"color: #2b839f;\">FullViewController<\/span><\/span><\/span><\/span><\/p>\n<p><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script><br \/>\n<ins class=\"adsbygoogle\" style=\"display: block; text-align: center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-1542270097115731\" data-ad-slot=\"5976953901\"><\/ins><br \/>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">ObjVC.<span style=\"color: #2b839f;\">image<\/span> = <span style=\"color: #2b839f;\">flickrPhoto<\/span>.<span style=\"color: #2b839f;\">thumbnail<\/span><\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #777777;\"><span style=\"font-family: Verdana, sans-serif;\"><span style=\"font-size: medium;\">}<\/span><\/span><\/span><\/p>\n<p class=\"western\"><span style=\"color: #000000;\"><span style=\"font-family: Lato, helvetica, arial, sans-serif;\"><span style=\"font-size: medium;\">You can download Demo Project Here :<\/span><\/span><\/span><\/p>\n<p class=\"western\"><em><a href=\"https:\/\/goo.gl\/I6qFs7\" target=\"_blank\" rel=\"noopener\"><span style=\"color: #0000ff;\"><span style=\"font-family: Lato, helvetica, arial, sans-serif;\"><span style=\"font-size: medium;\"><i>https:\/\/goo.gl\/I6qFs7<\/i><\/span><\/span><\/span><\/a><\/em><\/p>\n<p class=\"western\"><span style=\"color: #000000;\">Enjoy \ud83d\ude42<\/span><\/p>\n<p><strong>Also Check out<a href=\"https:\/\/www.inwizards.com\/blog\/how-to-validate-textfield-using-swift-2-0-in-ios\/\"> How To Validate TextField Using Swift 2.0 In iOS?<\/a><\/strong><\/p>\n<div class=\"primary\">\n<article id=\"post-378\" class=\"blog-post post-378 post type-post status-publish format-standard has-post-thumbnail hentry category-ios-development\">\n<div class=\"post-header clear\"><\/div>\n<\/article>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>So you want to know How to Search Photos Using Flickr API In Swift 2.0? Don&#8217;t worry Inwizards, a leading Software Development Company has expert developers that has solution to your query. Let Dive in and understand:\u00a0 Step 1: Create<\/p>\n","protected":false},"author":1,"featured_media":384,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"spay_email":""},"categories":[1],"tags":[],"jetpack_featured_media_url":"https:\/\/i2.wp.com\/www.inwizards.com\/blog\/wp-content\/uploads\/2017\/04\/pizap.com14912006626731-e1679470405622.jpg?fit=872%2C432&ssl=1","_links":{"self":[{"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/posts\/382"}],"collection":[{"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/comments?post=382"}],"version-history":[{"count":8,"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/posts\/382\/revisions"}],"predecessor-version":[{"id":2584,"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/posts\/382\/revisions\/2584"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/media\/384"}],"wp:attachment":[{"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/media?parent=382"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/categories?post=382"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inwizards.com\/blog\/wp-json\/wp\/v2\/tags?post=382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}