RadioGroup alternatives and similar libraries
Based on the "Button" category.
Alternatively, view RadioGroup alternatives based on common mentions on social networks and blogs.
-
LGButton
A fully customisable subclass of the native UIControl which allows you to create beautiful buttons without writing any line of code. -
PMSuperButton
๐ฅ PMSuperButton is a powerful UIButton coming from the countryside, but with super powers! ๐ -
AHDownloadButton
Customizable download button with progress and transition animations. It is based on Apple's App Store download button. -
NFDownloadButton
Revamped Download Button. It's kinda a reverse engineering of Netflix's app download button. -
SimpleButton
Simple UIButton subclass with additional state change animations (e.g. backgroundColor) and missing features -
DesignableButton
A Custom UIButton with Centralised Styling and common styles available in Interface Builder -
AnimatablePlayButton
Animated Play and Pause Button written in Swift, using CALayer, CAKeyframeAnimation. -
IGStoryButtonKit
IGStoryButtonKit provides an easy-to-use button with rich animation and multiple way inspired by instagram story/stories. -
NxEnabled
DISCONTINUED. Library that allows you binding `enabled` property of button with textable elements (TextView, TextField)
CodeRabbit: AI Code Reviews for Developers

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of RadioGroup or a related project?
README
RadioGroup
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.4")
]
Meta
*Note that all licence references and agreements mentioned in the RadioGroup README section above
are relevant to that project's source code only.