• Stars
    star
    682
  • Rank 63,927 (Top 2 %)
  • Language
    Swift
  • License
    MIT License
  • Created over 7 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A Pinterest-like segment control with masking animation.

PinterestSegment

A Pinterest-like segment control with masking animation.

Xcode 9.0+ iOS 8.0+ Swift 4.0+ Build Status CocoaPods Carthage compatible License MIT

Requirements

  • iOS 8.0+
  • Xcode 9.0
  • Swift 4.0

Installation

CocoaPods

You can use CocoaPods to install PinterestSegment by adding it to your Podfile:

platform :ios, '8.0'
use_frameworks!
pod 'PinterestSegment'

To get the full benefits import PinterestSegment wherever you import UIKit

import UIKit
import PinterestSegment

Carthage

Create a Cartfile that lists the framework and run carthage update. Follow the instructions to add $(SRCROOT)/Carthage/Build/iOS/PinterestSegment.framework to an iOS project.

github "tbxark/PinterestSegment"

Manually

  1. Download and drop PinterestSegment.swift in your project.
  2. Congratulations!

Usage example

let  style = PinterestSegmentStyle()

style.indicatorColor = UIColor(white: 0.95, alpha: 1)
style.titleMargin: CGFloat = 15
style.titlePendingHorizontal: CGFloat = 14
style.titlePendingVertical: CGFloat = 14
style.titleFont = UIFont.boldSystemFont(ofSize: 14)
style.normalTitleColor = UIColor.lightGray
style.selectedTitleColor = UIColor.darkGray

let segment = PinterestSegment(frame: CGRect(x: 20, y: 200, width: w - 40, height: 40), style: style, titles: ["Everything", "Geek", "Humor", "Art", "Food", "Home", "DIY", "Wemoent' Style", "Man's Style", "Beauty", "Travel"])

segment.valueChange = { index in
  // Do something here
}

You can also add icon for each title, Just like the blow demo gif

@IBOutlet weak var ibSegment: PinterestSegment!

var titles = [PinterestSegment.TitleElement]()
for i in 1...7 {
    guard let image = UIImage(named: "icon_\(i)"),
    let selectedImage = image.maskWithColor(color: ibSegment.style.selectedTitleColor),
    let normalImage = image.maskWithColor(color: ibSegment.style.normalTitleColor)  else { continue }
    titles.append(PinterestSegment.TitleElement(title: "Face-\(i)", selectedImage: selectedImage, normalImage: normalImage))
}
ibSegment.setRichTextTitles(titles)

Article

Β  Β Fix automaticallyAdjustsScrollViewInsets bug in PinterestSegment https://tbxark.com/2016/12/08/2016-12-08-Swift-Pinterst/

Release History

  • 1.2.0 support swift 4.0

  • 1.0.1 fix bug

  • 1.0.0 first commit

Contribute

We would love for you to contribute to PinterestSegment, check the LICENSE file for more info.

Meta

TBXark – @tbxark – [email protected]

Distributed under the MIT license. See LICENSE for more information.

https://github.com/TBXark

More Repositories

1

ChatGPT-Telegram-Workers

Deploy your own Telegram ChatGPT bot on Cloudflare Workers with ease.
JavaScript
3,223
star
2

TKRubberIndicator

A rubber animation pagecontrol
Swift
1,423
star
3

TKSwitcherCollection

An animation switch collection
Swift
914
star
4

Ruler

An AR ruler app can measure length & area
Swift
242
star
5

TKRadarChart

A customizable radar chart in Swift
Swift
209
star
6

mail2telegram

Forward email to telegram with Cloudflare Email Routing
JavaScript
143
star
7

TKDotSegment

TKDotSegment is a segment with dot animation
Swift
105
star
8

PasswordX

Offline password manager for iOS/macOS
Swift
29
star
9

tbxark.github.io

TBXark' blog
JavaScript
24
star
10

poe-telegram-bot

A lightweight poe chatbot for telegram
Python
17
star
11

github-backup

A tool for backing up all GitHub repositories locally.
JavaScript
16
star
12

ScrollViewThumbnail

Quickly create thumbnails for zoomed views in UIScrollview with just a single line of code.
Swift
14
star
13

g4vercel

Go web server for vercel
Go
10
star
14

TKSectorProgressView

An simple animation sector progress view
Swift
10
star
15

chatgpt-prompt-helper

A Tampermonkey script for quickly copying prompts in the web version of ChatGPT.
JavaScript
8
star
16

telegram-bot-vapor-example

Create telegram bot by swift
Swift
7
star
17

numberbarn2telegram

Forward the text message from NumberBarn to Telegram.
JavaScript
7
star
18

chat-bot-go

A lightweight chatgpt bot for telegram
Go
6
star
19

FlexLayout

Flex layout library similar to SwiftUI
Swift
6
star
20

JSONElement

JSONElement makes it easier and safer to use JSON
Swift
6
star
21

SwiftCache

A pure swift cache framework
Swift
4
star
22

TrieRouter

A simple framework for application routing.
Swift
4
star
23

swift-telegram-bot-api

Swift Telegram Bot API and Telegram Bot API Generator
Swift
3
star
24

testmail-viewer

An online preview tool for Testmail.
Vue
3
star
25

cloudflare-worker-adapter

Run your script without Cloudflare Workers.
JavaScript
3
star
26

NetworkService

NetworkService with Alamofire and RxSwift
Swift
3
star
27

my-leetcode-code

LeetCode is a platform for preparing technical coding interviews.
Swift
3
star
28

proxy-config-worker

[Deprecated] An online proxy configuration adaptation tool for Cloudflare worker.
JavaScript
2
star
29

autorun

autorun is a tool that listens for file changes and automatically executes commands.
Go
2
star
30

TBXark

Hi there, I'm TBXark~
2
star
31

RxSwiftLearnDemo

This is example code for RxSwift
Swift
2
star
32

MinesWeeping

A simple MinesWeeping Game
Swift
2
star
33

mweb-export

A tool for generating directories from MWeb files.
Go
1
star
34

temporary-encrypted-clipboard

Clipboard encryption script for secure password transfer across devices.
JavaScript
1
star
35

dart_router

A simple framework for application routing.
Dart
1
star
36

rmock

Modify HTTP JSON responses without needing HTTP capture and MitM.
JavaScript
1
star
37

PiPlayground

可δ»₯η”±η½‘ι‘΅ζŽ§εˆΆηš„ζθ―ε™¨
Swift
1
star
38

TKPlaceholderTextView

A textview with placeholder
Swift
1
star
39

Observable

A simple observer framework in Swift
Swift
1
star
40

Watermark

Swift
1
star
41

YoukuInfo

A simple youku crawler
HTML
1
star