SCTableIndex


설명

섹션을 사용하지 않고 테이블에 들어갈 String의 초성을 가지고 인덱스를 만드는 라이브러리입니다. 섹션 인덱스가 필요 할경우 활용해서 사용하실수 있습니다.


Github 주소

https://github.com/myoungsc/SCTableIndex


스크린샷


작업한 환경

* Swift 4
* XCode 9.1
* iOS 9.0 (Min SDK)

설치방법

다른 CocoaPod 처럼 설치 하시면 됩니다.

1. 터미널에서 해당 프로젝트 디렉토리로 이동한 후 'Pod init'
2. 디렉토리에 있는 PodFile에 (pod 'SCTableIndex')를 추가
3. 터미널에서 'pod install'
<

사용방법

import SCTableIndex

arrItem.sort()
sctbindex.delegate = self
//Use Selector Font, HelveticaNeue-Medium is Normal Font
//sctbindex.initialFont = UIFont(name: "HelveticaNeue-Medium", size: 13)!
//Use Selector initial Text Color, black is Normal Color
//sctbindex.initialTextColor = UIColor(red: 50.0/255.0, green: 50.0/255.0, blue: 50.0/255.0, alpha: 1.0)
//String Array item
sctbindex.setView(arrItem)


//MARK: SCTableIndex Delegate
extension ViewController: SCTableIndexDelegate {
    // Move starting point item that select initial text
    func scTableIndexReturnInitialText(_ strInitial: String, index: Int) {
        tbMain.scrollToRow(at: IndexPath(row: index, section: 0), at: .top, animated: true)
    }
}

라이센스

라이센스는 MIT라이센스를 따릅니다. 앱에 적용하실때는 사용하였다고 명시만 해주시면 됩니다.



'iOS 프로그래밍 > CocoaPod' 카테고리의 다른 글

SCTableIndex  (0) 2017.12.21
SCCardView  (0) 2017.12.21
SCWebPreview  (0) 2017.08.30
SCPageControl  (0) 2017.08.28


SCCardView


설명

뷰 밑에 있는 카드를 선택하여 상단에 있는 전체뷰를 바꿔주는 controller 입니다. 카드영역은 콜렉션뷰를 사용하였고 위에 내용이 표시되는 부분은 커스텀 하여서 원하는 목록을 넣어서 사용 할수 있습니다.

Github 주소

https://github.com/myoungsc/SCCardView

스크린샷


작업한 환경

* Swift 3.0.1
* XCode 8.3.1
* iOS 9.0 (Min SDK)

설치방법

다른 CocoaPod 처럼 설치 하시면 됩니다.

1. 터미널에서 해당 프로젝트 디렉토리로 이동한 후 'Pod init'
2. 디렉토리에 있는 PodFile에 (pod 'SCCardView')를 추가
3. 터미널에서 'pod install'

사용방법

import SCCardView

// Int index, [String: String] key, Value
// Make dummy data (Necessary key Image Card UI)
let dummyData: [Int: [String: Any]] = [0: ["image": UIImage()!,
                                          "title": "Catholic Church",
                                          "url": "https://github.com/myoungsc/SCCardView/blob/master/Example/SCCardView/Images.xcassets/sc0.imageset/sc0.jpg?raw=true",
                                          "description": "Maybe famous Catholic Churchsadl"],
                                       1: ["image": UIImage(named: "sc1")!,
                                           "title": "Beautiful Sea",
                                           "description": "Beautiful sea anywhere on earth"],
                                       2: ["image": UIImage(named: "sc2")!,
                                          "title": "Famous temple",
                                           "description": "A landscape of famous temple"],
                                       3: ["image": UIImage(named: "sc3")!,
                                          "title": "Pretty Flower",
                                          "description": "Pretty Flower\nphoto  by myoung father"],
                                       4: ["image": UIImage(named: "sc4")!,
                                          "title":"Vast Sky",
                                          "description": "Vast korea sky\nphoto by myoung father"],
                                       5: ["image": UIImage(named: "sc5")!,
                                          "title": "Leaf",
                                          "description":"Leaf anywhere on Korea\nphoto by myoung father"]]

sccard.delegate = self
sccard.cardStyle = .onlyTop
//if cardstyle round cutom
/*
 sccard.cardStyle = .custom
 sccard.initCustomCardStyle([.topLeft, .bottomRight])
 */
sccard.initialViewData(dummyData)

// Set initial value
if let dicSubData: [String: Any] = dummyData[0] {
    if let img: UIImage = dicSubData["image"] as? UIImage,
        let title: String = dicSubData["title"] as? String,
        let des: String = dicSubData["description"] as? String {
        sccardSubImg.image = img
        sccardSubTitle.text = title
        sccardSubDes.text = des
    }
}
// Autolayout bottom card ratio
contBottomDes.constant = sccard.bottomInterval


// Delegate
// Selector Card Click. Required Delegate
func SCCardSelectorCard(_ index: Int, dic: [String: Any]) {
    if let img: UIImage = dic["image"] as? UIImage,
        let title: String = dic["title"] as? String,
        let des: String = dic["description"] as? String {
        sccardSubImg.image = img
        sccardSubTitle.text = title
        sccardSubDes.text = des
    }
}

// Refresh content view from down image. Required Delegate
func SCCardURLIndexRefresh(_ img: UIImage) {
    sccardSubImg.image = img
}

// Card Down Gesture. optional Delegate
internal func SCCardDownCardAction(_ indexPath: IndexPath) {
    print("down gesture \(indexPath)")
}

// Card Up Gesture. optional Delegate
internal func SCCardUpCardAction(_ indexPath: IndexPath) {
    print("up gesture \(indexPath)")
}

라이센스

라이센스는 MIT라이센스를 따릅니다. 앱에 적용하실때는 사용하였다고 명시만 해주시면 됩니다.



'iOS 프로그래밍 > CocoaPod' 카테고리의 다른 글

SCTableIndex  (0) 2017.12.21
SCCardView  (0) 2017.12.21
SCWebPreview  (0) 2017.08.30
SCPageControl  (0) 2017.08.28


SCWebPreview


설명

페이스북, 카카오톡에서 URL을 공유하게 되면 미리보기 형식으로 이미지, 제목, 내용을 보여주는 창들이 있습니다. 그런 창들을 쉽게 구현 할 수 있게 도와주는 라이브러리 입니다. 원리는 html tag중에 meta data중 og:(og:url, og:image, og:title, og:description) 속성을 가지고 있는 내용을 가져와서 사용 할 수 있게 구성 되어 있습니다.


Github 주소

https://github.com/myoungsc/SCWebPreview


스크린샷


작업환경

* Swift 3.0.1
* XCode 8.3.3
* iOS 9.0 (Min SDK)

설치방법

일반적인 CocoaPod 설치 방법과 동일합니다.

1. 터미널에서 해당 프로젝트 디렉토리로 이동한 후 'Pod init'
2. 디렉토리에 있는 PodFile에 (pod "SCWebPreview")를 추가
3. 터미널에서 'pod install'

사용방법

  • SCWebPreview를 import 합니다.

    import SCWebPreview
    
  • HTML에서 metaData를 가져옵니다.([String]배열을 통해 url을 넣어 주시면 됩니다.)

    let webPages: [String] = ["https://github.com/myoungsc", "http://devsc.tistory.com/"]
    let scWebPreview = SCWebPreview()
    scWebPreview.initWebPages(webPages)
    scWebPreview.startCrawling(){
      for i in 0 ..< webPages.count {
          let dic = self.scWebPreview.getPreviewDataFromIndex(i)
          guard dic.count != 0 else {
              print("error: dic is optionl Value")
              return
          }
          //doSomething
      }
    }
    
  • 데이터를 가져오는 방법입니다.

    let dicWebData: [String: String] = scWebPreview.getPreviewDataFromIndex(0)
    print("og:url - \(dicWebData["og:url"]!)")
    print("og:url - \(dicWebData["og:title"]!)")
    print("og:url - \(dicWebData["og:description"]!)")
    print("og:url - \(dicWebData["og:image"]!)")
    
  • 해당 인덱스의 url를 사파리로 오픈 하는 방법입니다.

    scWebPreview.openSafariFromUrl(0)
    

라이센스

라이센스는 MIT라이센스를 따릅니다. 앱에 적용하실때는 사용하였다고 명시해주셔야됩니다.



'iOS 프로그래밍 > CocoaPod' 카테고리의 다른 글

SCTableIndex  (0) 2017.12.21
SCCardView  (0) 2017.12.21
SCWebPreview  (0) 2017.08.30
SCPageControl  (0) 2017.08.28


SCPageController

설명

커스텀 한 PageController입니다. 페이징된 스크롤에 연결이 되어서 스크롤이 움직임에 따라 컨트롤 되는 라이브러리 입니다. 제가 처음으로 만들어본 CocoaPod 컨트롤러 입니다. 오토레이아웃은 쓰지 않았고 가운데 정렬되어서 프레임에 맞추는데, xib나 storyboard에서는 큰틀만 잡아 주면 됩니다.

Github 주소

https://github.com/myoungsc/SCPageControl

스크린샷

작업한 환경

* Swift 3.0.1
* XCode 8.3.1
* iOS 9.0 (Min SDK)
* Not Use Autolayout

설치방법

다른 CocoaPod 처럼 설치 하시면 됩니다.

1. 터미널에서 해당 프로젝트 디렉토리로 이동한 후 'Pod init'
2. 디렉토리에 있는 PodFile에 (pod "SCPageControl")를 추가
3. 터미널에서 'pod install'

사용방법

public enum SCPageStyle: Int {
    case SCNormal = 100
    case SCJAMoveCircle // Design by Jardson Almeida
    case SCJAFillCircle // Design by Jardson Almeida
    case SCJAFlatBar // Design by Jardson Almeida
}

let sc = SCPageControlView()

override func viewDidLoad() {
    super.viewDidLoad()

    sc.frame = CGRect(x: 0, y: UIScreen.main.bounds.size.height-50, width: UIScreen.main.bounds.size.width, height: 50)
    sc.scp_style = .SCNormal
    sc.set_view(5, current: 0, tint_color: UIColor.red)
    view.addSubview(sc)
}

//MARK: ScrollView Delegate
func scrollViewDidScroll(_ scrollView: UIScrollView) {
    sc.scroll_did(scrollView)
}

라이센스

라이센스는 MIT라이센스를 따릅니다. 앱에 적용하실때는 사용하였다고 명시만 해주시면 됩니다.



'iOS 프로그래밍 > CocoaPod' 카테고리의 다른 글

SCTableIndex  (0) 2017.12.21
SCCardView  (0) 2017.12.21
SCWebPreview  (0) 2017.08.30
SCPageControl  (0) 2017.08.28

+ Recent posts