• Stars
    star
    190
  • Rank 203,739 (Top 5 %)
  • Language
    Swift
  • License
    MIT License
  • Created almost 6 years ago
  • Updated 7 months ago

Reviews

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

Repository Details

The missing iOS radio buttons group.

RadioGroup

Swift Version Build Status License CocoaPods Compatible
Platform PRs Welcome

The missing iOS radio buttons group.

Usage

let radioGroup = RadioGroup(titles: ["First Option Title", "Another Option Title", "Last"])
radioGroup.selectedIndex = 0
radioGroup.addTarget(self, action: #selector(optionSelected), forControlEvents: .valueChanged)

SwiftUI Usage

RadioGroupPicker(selectedIndex: $selection, titles: ["One", "Two", "Three"])
    .fixedSize()

Changing Appearance

The properties below can be set in Interface Builder, in code, or through a UIAppearance proxy (e.g., RadioGroup.appearance().titleColor = .red). When using SwiftUI you can set them in the RadioGroupPicker initializer, or use as view modifiers (e.g., .buttonSize(32)). .

Layout:

radioGroup.isVertical = false           // default is true => buttons are stacked vertically
radioGroup.titleAlignment = .right
radioGroup.isButtonAfterTitle = true    // default is false => button left (leading) relative to title

Color and Font:

radioGroup.tintColor = .green       // surrounding ring
radioGroup.selectedColor = .red     // inner circle (default is same color as ring)
radioGroup.selectedTintColor = .blue  // selected radio button's surrounding ring (default is tintColor)

radioGroup.titleColor = .blue
radioGroup.titleFont = myFont

Or use attributed strings:

radioGroup.attributedTitles = [
    NSAttributedString(string: "Italic", attributes: [.obliqueness: 0.3]),
    NSAttributedString(string: "Underline", attributes: [.underlineStyle: 1]),
]

Size:

radioGroup.buttonSize = 42.0
radioGroup.spacing = 12             // spacing between buttons
radioGroup.itemSpacing = 12         // horizontal spacing between button and title

Button appearance:

RadioButton.appearance().size = 32              // height=width of button
RadioButton.appearance().ringWidth = 3
RadioButton.appearance().ringSpacing = 7        // space between outer ring and inner circle
RadioButton.appearance().selectedColor = .blue  // color of inner circle

Installation

CocoaPods:

pod 'RadioGroup'

Swift Package Manager:

dependencies: [
    .package(url: "https://github.com/yonat/RadioGroup", from: "1.4.7")
]

Meta

@yonatsharon

https://github.com/yonat/RadioGroup

More Repositories

1

MultiSlider

UISlider clone with multiple thumbs and values, range highlight, optional snap intervals, optional value labels, either vertical or horizontal.
Swift
476
star
2

StepProgressView

Step-by-step progress view with labels and shapes. A good replacement for UIActivityIndicatorView and UIProgressView.
Swift
376
star
3

MultiSelectSegmentedControl

UISegmentedControl remake that supports selecting multiple segments, vertical stacking, combining text and images.
Swift
299
star
4

SelectionList

Simple single-selection or multiple-selection checklist, based on UITableView
Swift
119
star
5

MultiToggleButton

Multiple state tap-to-toggle UIButton (like old camera flash button)
Swift
83
star
6

CheckmarkCollectionViewCell

UICollectionViewCell with checkbox when it isSelected and empty circle when not - like Photos.app "Select" mode.
Swift
65
star
7

CameraBackground

Show camera layer as a background to any UIView
Swift
64
star
8

BatteryView

Simple battery shaped UIView
Swift
51
star
9

BadgeLabel

Simple animatable badge, based on UILabel and using CALayer
Objective-C
49
star
10

MockImagePicker

Mock UIImagePickerController for testing camera based UI in simulator
Swift
22
star
11

ContactsChangeNotifier

Which contacts changed outside your iOS app? Better CNContactStoreDidChange notification: Get real changes, without the noise.
Swift
17
star
12

EditableList

Simple List of UITextField-s based on UITableViewController
Objective-C
13
star
13

SweeterSwift

Extensions and syntactic sugar to enrich the Swift standard library, iOS frameworks, and SwifterSwift.
Swift
11
star
14

EasyBackgroundRefresh

Easy background refresh registration, scheduling, execution, and completion. BGTaskScheduler for the lazy.
Swift
10
star
15

YONAutoComplete

Add auto-completion to a UITextField
Objective-C
9
star
16

MiniLayout

Minimal AutoLayout convenience layer. Program constraints succinctly. ⚠️ Moved into https://github.com/yonat/SweeterSwift
Swift
8
star
17

AvailableHapticFeedback

Unified haptic feedback interface for all subclasses of UIFeedbackGenerator, with availability checks for iOS 9.
Swift
8
star
18

SwiftQuality

Common configuration files for SwiftLint and SwiftFormat
Ruby
6
star
19

smart_ptr

Simple C++ Smart Pointer Classes
C
3
star
20

versionit

Simple bash script to change Xcode project version and build number, create git tag, and update podspec.
Shell
3
star
21

pointainer

STL Extensions for containers of pointers
C++
2
star
22

Blinker

mac app that reminds you to blink by displaying animated blinking eyes on your screen at regular intervals
Swift
2
star
23

SystemFontOverride

Easy font branding for your iOS app
Swift
2
star
24

DirectoryUploader

Automatically upload all files saved in source directory, and then delete the uploaded files.
Swift
1
star