Basic components for setting up UIKit components programmatically.

Overview

UIKit Components Package

This repository contains basic components for setting up UIKit components programmatically.

It is made by SPACE SQUAD! We make great software with β™₯️ in Berlin.


Content

Features

This package contains extensions for easily setting up AutoLayout as well as basic components to simplify initializing programmatic UI components with UIKit.

Extensions

  • Constraining components (with optional custom padding)
  • Constrain views to fill their superview (with optional custom padding)
  • Constrain a view as a square
  • Set width or height of a views
  • Set inner padding for a UITextField

Components

  • BaseNavigationController (to easily override status bar color)
  • BaseCollectionViewController (to support Flow Layout and orientation change on iPad)
  • BaseButtonWithImage
  • BaseButtonWithText
  • BaseImageView
  • BaseLabel
  • BaseStackView
  • BaseTextField
  • BaseTextView
  • BaseView

Screenshots

Installation

Requirements
  • iOS 15.0+
  • Xcode 13+
  • Swift 5+
Swift Package Manager

In Xcode, go to File > Add Packages and add https://github.com/space-squad/uikit-components. Add the package to all your targets.

How to Use

Extensions and components can be accessed by declaring import UIKitComponents on top of your file. All components are named after the same schema, like Base<Component>. To see available components, check out the list above, look at the appended screenshot or check out the example project. There is no further setup needed.

All views have custom initializers to set properties of your view, some of which are required. Please check our example project on how to implement the components and use the extensions.

In addition, we added custom delegates to BaseTextView and BaseTextField to support subscribing to whether they are currently in editing mode and to continously read the user's input. See the example code on how to subscribe to their values using the Combine framework.

You might also like...
Inject-Dylib - ObjC Code to Programmatically Perform Dylib Injection
Inject-Dylib - ObjC Code to Programmatically Perform Dylib Injection

Inject-Dylib ObjC Code to Programmatically Perform Dylib Injection. Code leveraged from Wojciech Regula's FirefoxStealer project (https://github.com/r

Inject Dylib - Swift code to programmatically perform dylib injection
Inject Dylib - Swift code to programmatically perform dylib injection

Inject_Dylib Swift code to programmatically perform dylib injection. You can als

A child view controller framework that makes setting up your parent controllers as easy as pie.
A child view controller framework that makes setting up your parent controllers as easy as pie.

Description Family is a child view controller framework that makes setting up your parent controllers as easy as pie. With a simple yet powerful publi

An iOS app that generates random activities for the user to do. And can be personalized by setting the categories.

RandomActivityApp An iOS app that generates random activities for the user to do. And can be personalized by setting the categories. Created by: Pedro

Custom & highly configurable seek slider with sliding intervals, disabled state and every possible setting to tackle!
Custom & highly configurable seek slider with sliding intervals, disabled state and every possible setting to tackle!

iLabeledSeekSlider Custom & highly configurable seek slider with sliding intervals, disabled state and every possible setting to tackle! Minimum iOS v

CLI for setting location in the iOS simulator

set-simulator-location This is a simple CLI for easily setting the location of the currently running iOS Simulator. Usage Set a specific latitude and

Setting up application specific localized string within xib file.
Setting up application specific localized string within xib file.

LocalizedView ##What is this? LocalizedView is a helper class for setting up application specific localized string within Xib file. Here is a video de

A quick helper for setting attributed texts to UILabel.
A quick helper for setting attributed texts to UILabel.

UILabelAttributedTextHelper A quick helper for setting attributed texts to UILabel. Sample usage: label.setAttributedText( leadingText: "H

A Swift Runtime library for viewing type info, and the dynamic getting and setting of properties.
A Swift Runtime library for viewing type info, and the dynamic getting and setting of properties.

Runtime is a Swift library to give you more runtime abilities, including getting type metadata, setting properties via reflection, and type constructi

Animate numeric value while setting new value to label
Animate numeric value while setting new value to label

NumericAnimatedLabel Example To run the example project, clone the repo, and run pod install from the Example directory first. Requirements Installati

FruitsDic-ios-practice - To Practice onboarding , List, detail and setting View
FruitsDic-ios-practice - To Practice onboarding , List, detail and setting View

πŸ“ FruitsDic-ios-practice πŸ“Œ κΈ°λŠ₯ 상세 OnBoding Screen with Page Tab View Data model

Add the 'Hide Notification Badges' Focus mode setting from iOS to macOS
Add the 'Hide Notification Badges' Focus mode setting from iOS to macOS

FocusPlsNoBadges Add the 'Hide Notification Badges' Focus mode setting from iOS to macOS, in a really gross and hacky way. Getting started Build the X

 A guide on setting up Xcode with all the essential Applications, Tools, and Frameworks to make your development experience with Xcode great!
A guide on setting up Xcode with all the essential Applications, Tools, and Frameworks to make your development experience with Xcode great!

A guide on setting up Xcode with all the essential Applications, Tools, and Frameworks to make your development experience with Xcode great!

ExpoMod - a small application tool that lets you quickly setting up your computer for presentations / exhibitions
ExpoMod - a small application tool that lets you quickly setting up your computer for presentations / exhibitions

ExpoMod is a small application tool that lets you quickly setting up your computer for presentations / exhibitions. Or simply having useful shortcut to not being distract and keep awake your computer.

A Swift library for documenting, isolating, and testing SwiftUI, UIKIt & AppKit components.
A Swift library for documenting, isolating, and testing SwiftUI, UIKIt & AppKit components.

A Swift library for documenting, isolating, and testing SwiftUI, UIKit & AppKit components. Minimal Example An example demonstrated with the Slider ui

Introspect underlying UIKit components from SwiftUI
Introspect underlying UIKit components from SwiftUI

Introspect for SwiftUI Introspect allows you to get the underlying UIKit or AppKit element of a SwiftUI view. For instance, with Introspect you can ac

A set of UIKit helpers that simplify the usage of UIKit view's and controller's in SwiftUI.

A set of UIKit helpers that simplify the usage of UIKit view's and controller's in SwiftUI. Many of these helpers are useful even in a pure UIKit project.

Controls-Practice-UIKit- - Controls Practice (UIKit)
Controls-Practice-UIKit- - Controls Practice (UIKit)

Controls Practice (UIKit) Change a number 0 to 255 different ways: Button (+1) I

🍞 An async waiting toast with basic toast. Inspired by facebook posting toast
🍞 An async waiting toast with basic toast. Inspired by facebook posting toast

AwaitToast 🍞 An async waiting toast with basic toast. Inspired by facebook posting toast. Introduction Usage Default let toast: Toast = Toast.default

Comments
  • UIKit Components v.1.0.0

    UIKit Components v.1.0.0

    This PR contains all basic components as well as extensions for setting up AutoLayout. The example project displays all available components and how they are setup.

    opened by kaevinio 1
Owner
SPACE SQUAD
Software handcrafted with πŸ–€ in Berlin, Germany πŸ‘©β€πŸš€ πŸ‘¨β€πŸš€ πŸš€
SPACE SQUAD
A basic countdown app that allows the user to create, edit, and delete events. Each event contains a live countdown timer to a specified date and time.

Event Countdown App (iOS) Created by Lucas Ausberger About This Project Created: January 4, 2021 Last Updated: January 8, 2021 Current Verison: 1.1.1

Lucas Ausberger 1 Jan 8, 2022
This is a app developed in Swift, using Object Oriented Programing, UIKit user interface programmatically, API Request and Kingfisher to load remote images

iOS NOW ⭐ This is a app developed in Swift, using Object Oriented Programing, UIKit user interface programmatically, API Request and Kingfisher to loa

William TristΓ£o de Paula 1 Dec 7, 2021
Simple IOS notes app written programmatically without storyboard using UIKit and CoreData

Notes Simple Notes app. Swift, UIKit, CoreData Description Simple IOS notes app

null 4 Dec 23, 2022
Configurable animated onboarding screen written programmatically in Swift for UIKit

Configurable animated onboarding screen written programmatically in Swift for UIKit – inspired by many Apple-designed user interfaces in iOS – with Insignia as an example.

Lukman β€œLuke” AőčiΔ‡ 370 Dec 27, 2022
News App for Latinx News built in UIKit programmatically

LatinxNewsApp News App for Latinx News built in UIKit programmatically Overview LatinxNewsApp is a design taken from a bigger idea. It is a news app t

Bryan Gomez 1 Apr 21, 2022
VidyoPlatform Basic CustomLayouts Reference App for iOS (Swift)VidyoPlatform Basic CustomLayouts Reference App for iOS (Swift)

VidyoPlatform Basic CustomLayouts Reference App for iOS (Swift) VidyoPlatform reference application highlighting how to integrate video chat into a na

Taras Melko 0 Nov 19, 2021
Matrix-rust-components-swift - Swift package providing components from the matrix-rust-sdk

Swift package for Matrix Rust components This repository is a Swift Package for

matrix.org 10 Nov 4, 2022
Programmatically load custom fonts into your iOS and tvOS app.

FontBlaster Programmatically load custom fonts into your iOS and tvOS app. About Say goodbye to importing custom fonts via property lists as FontBlast

Arthur Ariel Sabintsev 1.1k Jan 3, 2023
Swift code to programmatically execute local or hosted JXA payloads without using the on-disk osascript binary

Swift code to programmatically execute local or hosted JXA payloads without using the on-disk osascript binary. This is helpful when you have Terminal access to a macOS host and want to launch a JXA .js payload without using on-disk osascript commands.

Cedric Owens 20 Sep 27, 2022
A demo project using VIPER architecture and building user interface programmatically

ProductDiscovery A demo project that building a UIKit user interface programmatically. Because the UI is made of code very long so I have separated it

Vinh Vo 7 Oct 1, 2021