스토리 보드 팁


스토리보드 사용시 깔끔하게 나누는 방법

https://brunch.co.kr/@joonwonlee/5


http://theeye.pe.kr/archives/2292

터미널 열고

defaults write com.apple.dt.XCode IDEIndexDisable 1

'IOS' 카테고리의 다른 글

background thread 종류  (0) 2017.07.14
array union, intersection 관련내용  (0) 2017.06.30
xcode pod 파일들이 엉켰을때..  (0) 2017.06.29
스위프트 공부 참고 사이트  (0) 2017.04.10
스위프트 추천 기술들  (0) 2017.04.10
extension Array {
    func mapArray<T>(_ transform: (Array) -> T) -> T {
        return transform(self)
    }
}

Then you can pass in the Set initializer to the new mapArray function

objectArray
    .map({ $0.URL })
    .mapArray(Set.init)


출처 : http://codeman77.tistory.com/82


import UIKit;


// 홀수 집합

let oddNumberSet : Set = [ 13579 ];

// 짝수 집합

let evenNumberSet : Set = [ 02468 ];

// 소수 집합

let primeNumberSet : Set = [ 2357 ];


// 연산 결과를 저장할 집합

var resultNumberSet : Set = Set<Int>();


// 교집합(Intersection) :  집합의 공통된 요소

print("홀수짝수 교집합");

resultNumberSet = oddNumberSet.intersection(evenNumberSet);

// []

for i in resultNumberSet.sorted(){

    print(i);

}

resultNumberSet.removeAll();

print();


print("홀수소수 교집합");

resultNumberSet = oddNumberSet.intersection(primeNumberSet);

// [ 3, 5, 7 ]

for i in resultNumberSet.sorted(){

    print(i);

}

resultNumberSet.removeAll();

print();


// 차집합(Subtract) : 한쪽 집합에만 있는 요소

print("홀수짝수 차집합");

resultNumberSet = oddNumberSet.subtracting(evenNumberSet);

// [ 1, 3, 5, 7, 9 ]

for i in resultNumberSet.sorted(){

    print(i);

}

resultNumberSet.removeAll();

print();


print("홀수소수 차집합");

resultNumberSet = oddNumberSet.subtracting(primeNumberSet);

// [ 1, 9 ]

for i in resultNumberSet.sorted(){

    print(i);

}

resultNumberSet.removeAll();

print();


// 합집합(Union) : 양쪽 집합에 있는 모든 요소

print("홀수짝수 합집합");

resultNumberSet = oddNumberSet.union(evenNumberSet);

// [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]

for i in resultNumberSet.sorted(){

    print(i);

}

resultNumberSet.removeAll();

print();


print("홀수소수 합집합");

resultNumberSet = oddNumberSet.union(primeNumberSet);

// [ 1, 2, 3, 5, 7, 9 ]

for i in resultNumberSet.sorted(){

    print(i);

}

resultNumberSet.removeAll();

print();


// 대칭차(Symmetric Difference) :  집합의 상대 여집합의 합집합에서 교집합을  

print("홀수짝수 대칭차");

resultNumberSet = oddNumberSet.symmetricDifference(evenNumberSet);

// [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]

for i in resultNumberSet.sorted(){

    print(i);

}

resultNumberSet.removeAll();

print();


print("홀수소수 대칭차");

resultNumberSet = oddNumberSet.symmetricDifference(primeNumberSet);

// [ 1, 2, 9 ]

for i in resultNumberSet.sorted(){

    print(i);

}

resultNumberSet.removeAll();

print();


실행 결과

실행 결과



출처: http://codeman77.tistory.com/82 [☆]

출처: http://codeman77.tistory.com/82 [☆]

Creating a concurrent queue

let concurrentQueue = DispatchQueue(label: "queuename", attributes: .concurrent)
concurrentQueue.sync {

}  

Create a serial queue

let serialQueue = DispatchQueue(label: "queuename")
serialQueue.sync { 

}

Get main queue asynchronously

DispatchQueue.main.async {

}

Get main queue synchronously

DispatchQueue.main.sync {

}

To get one of the background thread

DispatchQueue.global(attributes: .qosDefault).async {

}

Xcode 8.2 beta 2:

To get one of the background thread

DispatchQueue.global(qos: .default).async {

}

DispatchQueue.global().async {
    // qos' default value is ´DispatchQoS.QoSClass.default`
}

If you want to learn about using these queues .See this answer

'IOS' 카테고리의 다른 글

xcode 인덱싱 비활성화..  (0) 2017.08.04
array union, intersection 관련내용  (0) 2017.06.30
xcode pod 파일들이 엉켰을때..  (0) 2017.06.29
스위프트 공부 참고 사이트  (0) 2017.04.10
스위프트 추천 기술들  (0) 2017.04.10

출처 : https://stackoverflow.com/a/36839785

You may to use ActivityIndicator from RxSwift repo. I using MBProgressHUD in my project. At first you need to create extension for this library:

extension MBProgressHUD {

    /**
     Bindable sink for MBProgressHUD show/hide methods.
     */
    public var rx_mbprogresshud_animating: AnyObserver<Bool> {
        return AnyObserver { event in
            MainScheduler.ensureExecutingOnScheduler()

            switch (event) {
            case .Next(let value):
                if value {
                    let loadingNotification = MBProgressHUD.showHUDAddedTo(UIApplication.sharedApplication().keyWindow?.subviews.last, animated: true)
                    loadingNotification.mode = self.mode
                    loadingNotification.labelText = self.labelText
                    loadingNotification.dimBackground = self.dimBackground
                } else {
                    MBProgressHUD.hideHUDForView(UIApplication.sharedApplication().keyWindow?.subviews.last, animated: true)
                }
            case .Error(let error):
                let error = "Binding error to UI: \(error)"
                #if DEBUG
                    rxFatalError(error)
                #else
                    print(error)
                #endif
            case .Completed:
                break
            }
        }
    }
}

Next you need to create ActivityIndicator object in your ViewController class:

let progress = MBProgressHUD()
progress.mode = MBProgressHUDMode.Indeterminate
progress.labelText = "Loading..."
progress.dimBackground = true

let indicator = ActivityIndicator()
indicator.asObservable()
    .bindTo(progress.rx_mbprogresshud_animating)
    .addDisposableTo(bag)

Next just use trackActivity() function into your sequences:

apiMethod
.trackActivity(indicator)
.subscribeNext { stringArray in 
    items.value = stringArray
}
.addDisposableTo(bag)


'IOS > Rxswift' 카테고리의 다른 글

[ReactiveX][RxSwift]flatMap, flatMapFirst, flatMapLatest  (0) 2017.04.13

es, Swift has the Set class.

let array1 = ["a", "b", "c"]
let array2 = ["a", "b", "d"]

let set1:Set<String> = Set(array1)
let set2:Set<String> = Set(array2)

Swift 3.0+ can do operations on sets as:

firstSet.union(secondSet)// Union of two sets
firstSet.intersection(secondSet)// Intersection of two sets
firstSet.symmetricDifference(secondSet)// exclusiveOr

Swift 2.0 can calculate on array arguments:

set1.union(array2)       // {"a", "b", "c", "d"} 
set1.intersect(array2)   // {"a", "b"}
set1.subtract(array2)    // {"c"}
set1.exclusiveOr(array2) // {"c", "d"}

Swift 1.2+ can calculate on sets:

set1.union(set2)        // {"a", "b", "c", "d"}
set1.intersect(set2)    // {"a", "b"}
set1.subtract(set2)     // {"c"}
set1.exclusiveOr(set2)  // {"c", "d"}


'IOS' 카테고리의 다른 글

xcode 인덱싱 비활성화..  (0) 2017.08.04
background thread 종류  (0) 2017.07.14
xcode pod 파일들이 엉켰을때..  (0) 2017.06.29
스위프트 공부 참고 사이트  (0) 2017.04.10
스위프트 추천 기술들  (0) 2017.04.10
  1. close Xcode
  2. Console:
rm -rf Pods/ Podfile.lock
pod install
  1. Open project in Xcode
  2. Menu: Product -> Clean
  3. Build or Run project.
    If it is not work, then you have same other issue. Or are you have warning about file "Pods-MyProject.debug.xcconfig" too?


'IOS' 카테고리의 다른 글

xcode 인덱싱 비활성화..  (0) 2017.08.04
background thread 종류  (0) 2017.07.14
array union, intersection 관련내용  (0) 2017.06.30
스위프트 공부 참고 사이트  (0) 2017.04.10
스위프트 추천 기술들  (0) 2017.04.10

출처 : http://mtsparrow.blogspot.kr/2016/02/swift-5-days-ago.html


몇일전
몇시간전
몇분전

등등...

이런 정보를 표시해야 하는 경우가 있다.

NSDate의 extension으로 다음과 같이 구현 한다음

이를 이용하면 가능 하다.

import Foundation

extension NSDate {
    func yearsFrom(date:NSDate) -> Int{
        return NSCalendar.currentCalendar().components(.Year, fromDate: date, toDate: self, options: []).year
    }
    func monthsFrom(date:NSDate) -> Int{
        return NSCalendar.currentCalendar().components(.Month, fromDate: date, toDate: self, options: []).month
    }
    func weeksFrom(date:NSDate) -> Int{
        return NSCalendar.currentCalendar().components(.WeekOfYear, fromDate: date, toDate: self, options: []).weekOfYear
    }
    func daysFrom(date:NSDate) -> Int{
        return NSCalendar.currentCalendar().components(.Day, fromDate: date, toDate: self, options: []).day
    }
    func hoursFrom(date:NSDate) -> Int{
        return NSCalendar.currentCalendar().components(.Hour, fromDate: date, toDate: self, options: []).hour
    }
    func minutesFrom(date:NSDate) -> Int{
        return NSCalendar.currentCalendar().components(.Minute, fromDate: date, toDate: self, options: []).minute
    }
    func secondsFrom(date:NSDate) -> Int{
        return NSCalendar.currentCalendar().components(.Second, fromDate: date, toDate: self, options: []).second
    }
    func offsetFrom(date:NSDate) -> String {
        if yearsFrom(date)   > 0 { return "\(yearsFrom(date))y"   }
        if monthsFrom(date)  > 0 { return "\(monthsFrom(date))M"  }
        if weeksFrom(date)   > 0 { return "\(weeksFrom(date))w"   }
        if daysFrom(date)    > 0 { return "\(daysFrom(date))d"    }
        if hoursFrom(date)   > 0 { return "\(hoursFrom(date))h"   }
        if minutesFrom(date) > 0 { return "\(minutesFrom(date))m" }
        if secondsFrom(date) > 0 { return "\(secondsFrom(date))s" }
        return ""
    }


}

사용하는 방법은 다음과 같다.

lastSportData.year, mont, day 값을 NSDate로 만들어서 현재 NSDate와의 몇일 차이인지 문자열을 만든다.

            let date = NSDate()
            let day = date.daysFrom(makedate(lastSportData.year, month: lastSportData.month, day: lastSportData.day))
            if day > 0 {
                agoLabel.text = "\(day)days ago"
            } else {
                agoLabel.text = "today"
            }


'IOS > 예제모음' 카테고리의 다른 글

swift array to Set  (0) 2017.07.17
swift 연산자 모음 예제들  (0) 2017.07.17
권한 예제 모음  (0) 2017.04.25
swift 카메라 및 갤러리 접근 코드 소스  (0) 2017.04.20
swift 화면 이동  (0) 2017.04.18

https://medium.com/ios-os-x-development/libraries-used-in-the-top-100-ios-apps-5b845ad927b7

67	facebook-ios-sdk
48 Bolts-iOS
39 AFNetworking
38 Google-Mobile-Ads-SDK
38 Reachability (Apple)
37 Crashlytics
31 Flurry-iOS-SDK
30 CocoaPods
29 GoogleConversionTracking
26 SDWebImage
25 Fabric
25 mopub-ios-sdk
23 Unity
22 AdColony
20 GoogleAnalytics
19 GTMLogger
18 comScore-iOS-SDK
18 google-plus-ios
17 OpenUDID
17 CocoaLumberjack
16 Adjust
16 ChartboostSDK
16 MBProgressHUD
15 OpenInChrome
15 TTTAttributedLabel
14 HockeySDK
14 google-breakpad
13 CocoaAsyncSocket
13 AppLovin
13 SBJson
12 FMDB
12 GLImageProcessing (Apple Sample)
12 pop
12 SSZipArchive
12 Appirater
11 BPXLUUIDHandler
11 VungleSDK-iOS
11 Protobuf
11 UnityAds
10 SSKeychain
10 KeychainItemWrapper
10 PLCrashReporter
10 secureudid
10 libPhoneNumber-iOS
10 oauthconsumer
9 InMobiSDK
9 MobileAppTracker
9 TapjoySDK
9 TrustDefender Mobile
9 iRate
8 OnePasswordExtension
8 SFHFKeychainUtils
8 Tweaks
8 cocos2d
8 GPUImage
8 KVOController
8 Nimbus
8 google-cast-sdk
7 HPGrowingTextView
7 Localytics
7 thrift
7 FormatterKit
7 Kochava
7 Mantle
7 Mixpanel
7 AppNexusSDK
7 JSONKit
7 NJKWebViewProgress
7 cocos2d-x
7 TouchJSON
6 SupersonicAds
6 TPKeyboardAvoiding
6 SponsorPaySDK
6 PhotoScroller (Apple)
6 TwitterKit
6 SpeechKit
6 ReactiveCocoa
6 UICKeyChainStore
6 WeChatSDK
6 XMLDictionary
5 SVProgressHUD
5 SocketRocket
5 libextobjc
5 Shimmer
5 TransitionKit
5 AsyncDisplayKit
5 SnowplowTracker
5 aws-sdk-ios
5 SVPullToRefresh
5 MMWormhole
5 Masonry
5 UIAlertView+Blocks
5 FLAnimatedImage
5 AppsFlyer-SDK
5 CardIO
5 TMCache
5 youtube-ios-player-helper
4 Weibo
4 Parse
4 MagicalRecord
4 GoogleMaps
4 GoogleAds-IMA-iOS-SDK
4 Braintree
4 PSPDFTextView
4 FXBlurView
4 ASIHTTPRequest



출처: http://gopen.tistory.com/7 [1001 Knowledge]

출처 : http://blog.daum.net/hans1991/3

최근에 업데이트 된 xcode 8로 앱을 앱스토에 업로드할 경우 앱에서 사용되는 권한을 info.plist에 반드시 지정해야 합니다.

이를 설정하지 않고

    1. 앱을 itunesconnect에 업로드할 경우 오류로 인하여 정상등록되지 않고 해당 애플 계정으로 오류 메일이 전송됩니다.

    2. iOS 10 디바이스에서 실행할 경우 권한을 필요로 하는 곳에서 앱이 죽는 현상이 발생합니다.


* info.plist에 권한 추가하기

   1) 포토앨범 사용하는 경우  : "Privacy - Photo Library Usage Description" 키 추가

   2) 카메라를 사용하는 경우 : "Privacy - Camera Usage Description"  키 추가

   3) 주소록을 사용하는 경우 : "Privacy - Contacts Usage Description" 키 추가

   4) 음악을 사용하는 경우 : "Privacy - Music Usage Description" 키 추가

   5) 우치기반, Bluetooth, 달력 등.....을 사용할 경우에도 해당 권한을 추가해 줘야 합니다... 


  각 키를 추가한 다음에 description을 지정해 줘야 하는데(꼭 필요한 것은 아님 꼭 필요하네요. 이걸 추가하지 않으면 심사를 위해 앱을 등록할 때 오류가 발생합니다..) 여기에 사용된 문자열이 권한을 요구할 때 같이 표시됩니다.


 #참고...  info.plist 에 키 등록 후 description 등록된 모습

   

 [그림1] Description이 없는 경우                                  [그림2] Description이 있는 경우


import UIKit
 
class ViewController: UIViewController,
    UIImagePickerControllerDelegate,
    UINavigationControllerDelegate
{
    let picker = UIImagePickerController()
    @IBOutlet weak var myImageView: UIImageView!
     
    @IBAction func photoFromLibrary(_ sender: UIBarButtonItem) {
        picker.allowsEditing = false
        picker.sourceType = .photoLibrary
        picker.mediaTypes = UIImagePickerController.availableMediaTypes(for: .photoLibrary)!
        picker.modalPresentationStyle = .popover
        present(picker, animated: true, completion: nil)
        picker.popoverPresentationController?.barButtonItem = sender
    }
     
    @IBAction func shootPhoto(_ sender: UIBarButtonItem) {
        if UIImagePickerController.isSourceTypeAvailable(.camera) {
            picker.allowsEditing = false
            picker.sourceType = UIImagePickerControllerSourceType.camera
            picker.cameraCaptureMode = .photo
            picker.modalPresentationStyle = .fullScreen
            present(picker,animated: true,completion: nil)
        } else {
            noCamera()
        }
    }
    func noCamera(){
        let alertVC = UIAlertController(
            title: "No Camera",
            message: "Sorry, this device has no camera",
            preferredStyle: .alert)
        let okAction = UIAlertAction(
            title: "OK",
            style:.default,
            handler: nil)
        alertVC.addAction(okAction)
        present(
            alertVC,
            animated: true,
            completion: nil)
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        picker.delegate = self
    }
 
    //MARK: - Delegates
    func imagePickerController(_ picker: UIImagePickerController,
        didFinishPickingMediaWithInfo info: [String : AnyObject])
    {
        var  chosenImage = UIImage()
        chosenImage = info[UIImagePickerControllerOriginalImage] as! UIImage //2
        myImageView.contentMode = .scaleAspectFit //3
        myImageView.image = chosenImage //4
        dismiss(animated:true, completion: nil) //5
    }
    func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
       dismiss(animated: true, completion: nil)
    }
 
}


'IOS > 예제모음' 카테고리의 다른 글

swift 로 몇분전,몇시간전등으로 표기하는 예제  (0) 2017.05.11
권한 예제 모음  (0) 2017.04.25
swift 화면 이동  (0) 2017.04.18
IOS 멋진 예제 모음 사이트  (0) 2017.04.17
이미지 체인저를 이용한 소스  (0) 2017.02.11

storyboard 를 사용해서 간단하게 화면이동이 가능하지만, 조건문과 함께 사용할때는 코드로 이동하는 것이 편할때가 있다.


같은 스토리보드내에 있는 다른 뷰로 이동하는 경우

// nextViewController.swift 인 경우

let storyboard: UIStoryboard = self.storyboard!

let nextView = storyboard.instantiateViewController(withIdentifier: "nextViewController")

self.present(nextView, animated: true, completion: nil)



현재와 다른 스토리보드에 있는 뷰로 이동하는 경우

xcode 상에서 is Initial View Controller 에 체크를 해도 되지만,

아래와 같이 name 파라미터에 스토리보드의 이름을 넣어도 된다.


// 파일명이 Next.storyboard 인 경우

let storyboard: UIStoryboard = UIStoryboard(name: "Next", bundle: nil)

let nextView = storyboard.instantiateInitialViewController()

self.present(nextView!, animated: true, completion: nil)



출처: http://geguri.tistory.com/45 [개구리의 IT공간]

출처: http://geguri.tistory.com/45 [개구리의 IT공간]

'IOS > Rxswift' 카테고리의 다른 글

RxSwift에 Progress dialog 올리는 방법  (0) 2017.07.13

스위프트 공부 가이드

Apple 공식 Swift 언어 가이드를 보시면 언어 자체를 공부하시는데 이보다 좋은 문서는 없을 듯 싶구요.

https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language

Swift를 이용한 iOS 개발 공부에 집중적으로 초점을 맞추신다면, Raywenderlich Tutorials을 추천합니다.

https://www.raywenderlich.com/category/swift

맛보기 정도로 가볍게 배워보고 싶으시면, CodeSchool의 Swift 코스를 추천합니다.

https://www.codeschool.com/courses/app-evolution-with-swift

그 외에도, 유명한 Stanford iOS Course (http://web.stanford.edu/class/cs193p), Coursera, Udacity 에도 양질의 Swift 동영상 강의가 있습니다.

'IOS' 카테고리의 다른 글

xcode 인덱싱 비활성화..  (0) 2017.08.04
background thread 종류  (0) 2017.07.14
array union, intersection 관련내용  (0) 2017.06.30
xcode pod 파일들이 엉켰을때..  (0) 2017.06.29
스위프트 추천 기술들  (0) 2017.04.10

출처 : https://swifter.kr/2016/09/03/swifter%EA%B0%80-%EC%B6%94%EC%B2%9C%ED%95%98%EB%8A%94-%EC%95%8C%EB%A9%B4-%EC%A2%8B%EC%9D%80-%EA%B0%9C%EB%B0%9C%EC%9A%A9-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC/

기본

1. Realm

모바일 로컬 데이터베이스로 개인적으로 sqlite보단 빠르고 안정적이라고 생각한다. 그외 iOS자체적으로 제공하는 CoreData등이 있다.

2. Firebase

MBaaS로 Parse가 없어지면서 대체할 수 있는 백엔드서비스로 각종 분석서비스등을 쉽고 저렴하게 이용할 수 있다.

3. SDWebImage 

Objective-C시절부터 유명했던 이미지 캐시 라이브러리로 Swift도 지원한다. 이것 외에 Swift언어로 순수하게 작성된 Haneke나 Kingfisher등을 추천한다.

4. Alamofire

Swift언어에서 HTTP프레임웍으로 가장 많이 사용하는 라이브러리로 서버와의 통신에 중요하게 사용된다.

5. SwiftyJSON

Swift언어기반으로 만들어진 JSON데이터 파싱 라이브러리로 가장 많이 이용한다고 생각된다. 여기에 보통 JSON매핑이 필요한 경우 ObjectMapper를 사용한다.

6. RxSwift

함수형 프로그래밍(Reactive Programming)에 사용하는 Swift용 라이브러리 중 하나로 무엇보다 소스코드를 상당히 간결하게 작성할 수 있는 장점이 있다.

UI 디자인

7. ParseUI

깔끔한 로그인 화면등에 사용할 수 있는 UI를 사용할 수 있다.

parseui

8. FlatUIKit

플랫한 UI 라이브로리로 경고창이나 버튼, 입력박스등을 참고할 수 있다.

flatuikit2 flatuikit1 flatuikit3

9. JSQMessagesViewController

다양한 앱에 메시지받는 기능이나 채팅기능을 구현하고 싶을 때 유용하며 Firebase와도 궁합이 잘 맞는다.

screenshot0

10. KRPrograssHUD

다른 로딩 라이브러리도 많지만 색상이나 상세정보를 깔끔하고 쉽게 변경할 수 있어 추천한다. 보통은 SVProgressHUDMBPrograssHUD를 많이 사용한다.

styles

11. DualSlideMenu

Swift언어로 작성된 일반적인 슬라이드 메뉴를 구현할 때 자주 사용하는 라이브러리중 하나이다.

dualslide

12. SlideMenu3D

입체적인 슬라이드메뉴를 구성해야할 경우 사용할 수 있는 라이브러리로 유튜브에 올라온 영상을 참고하자.

13. UIImageView-Letters

구글 서비스를 사용하다보면 나오던 원형 아이콘에 이니셜이 들어가는 형태의 이미지를 구현하고 싶을 때 이용할 수 있는 라이브러리이다.

uiimage-letters

14. UIViewController-KeyboardAnimation

키보드를 눌렀을 때 애니메이션 처리에 유용한 라이브러리인데 최근 업데이트가 되지 않고 있다.

an_kb_animation_demo

15. UIColor-Hex-Swift

UIColor에 16진수 색상을 쉽게 사용하고 싶은 경우에 이용할 수 있는 라이브러리이다.

16. UITextField-Navigation

개인정보 입력화면 양식등에 다음 텍스트필드로 입력할 수 있도록 이동이 가능하게 만들어주는 라이브러리이다.

screenshot2

17. UICountingLabel

카운팅 애니메이션이 필요할 경우 이용할 수 있다.

demo

18. FoldingTabBar.iOS

TabBar를 사용하는 UI를 구성시 깔끔한 애니메이션을 적용하고 싶은 경우에 이용할 수 있는 라이브러리이다.

foldingtabbar

19. LTNavigationBar

스크롤바가 방해되지 않는 형태의 네비게이션을 구현할 때 유용하다.

ltnav

20.JDAnimationKit

코드 작성이 적고 깔끔하고 쉽게 애니메이션을 구현할 수 있는 라이브러리이다.

jdani

21. ZoomTransitioning

사진을 나열한후 줌 액션을 통해 이동애니메이션등을 깔끔하게 처리할 수 있는 라이브러리이다.

zoomtran

 

기술관련

22. VENTouchLock

TouchID사용할 경우 이용할 수 있는 라이브러리이다.

ventouch

23. LocationManager

위치정보를 처리할 때 이용하는 라이브러리이다.

24. DebugView

화면UI의 크기를 확인할 수 있는 라이브러리이다.

'IOS' 카테고리의 다른 글

xcode 인덱싱 비활성화..  (0) 2017.08.04
background thread 종류  (0) 2017.07.14
array union, intersection 관련내용  (0) 2017.06.30
xcode pod 파일들이 엉켰을때..  (0) 2017.06.29
스위프트 공부 참고 사이트  (0) 2017.04.10

class ViewController: UIViewController {

    @IBOutlet weak var imgMain: UIImageView!

    @IBOutlet weak var btnPrev: UIButton!

    @IBOutlet weak var btnNext: UIButton!

    var idx = 0

    

    var array_img = ["img1.jpeg" , "img2.jpeg" , "img3.jpeg"]


    override func viewDidLoad() {

        super.viewDidLoad()

        // Do any additional setup after loading the view, typically from a nib.

        initView(_pos : 0);

    }

    

    func initView(_pos : Int){

        print( "current pos -> \(_pos)" )

        imgMain.image = UIImage(named: array_img[_pos]);

    }


    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }


    @IBAction func showPrevPrc(_ sender: Any) {

        idx -= 1

        if ( idx < 0 ){

         idx = array_img.count - 1

        }

        

        

        initView(_pos: idx);

    }

    

    @IBAction func showNextPrc(_ sender: Any) {

        idx += 1

        if(idx >= array_img.count){

            idx = 0;

        }

        

        initView(_pos: idx);

        

    }

    


}

+ Recent posts