Using a RefreshControl to Reload a WKWebView

When you use the WKWebView control to render a web page in your iOS application, it doesn’t come with the usual browser controls that users may expect. It renders the webpage without a toolbar or functions like Back, Forward, or Reload. I’m going to show you how to use the iOS UIRefreshControl to reload a web page rendered in a WKWebView. Read more on Using a RefreshControl to Reload a WKWebView…

How to Dim the Background of a Popover on iOS

The design for a recent project called for the contents of the popover view to be emphasized prominently. Specifically, the design wanted all the views behind the popover to be dimmed.

By default, iOS will put a radial gradient around the popup to draw attention to it, but I needed something more. In this blog post, I’ll show you how you can dim not only the view behind the popover, but also the status and navigation bar. Read more on How to Dim the Background of a Popover on iOS…

Programmatically Connecting to WiFi in Your Xamarin.Forms App

With the dawn of the Internet of Things, smart homes, and connected devices, mobile apps have become key elements of creating harmony between everything. Most IoT devices require users to provision their devices on a home wireless network, which can sometimes cause poor user experience. However, apps have the ability to ease these pain points by programmatically connecting to wifi networks. Read more on Programmatically Connecting to WiFi in Your Xamarin.Forms App…

Centralize Callback Handling by Creating a Reactive Signal

When I first started using ReactiveCocoa (now ReactiveObjC), I mainly stuck to the basic operators: map, flatten, merge, etc. I saw a few examples of createSignal, but all I saw was a lot of manual work with disposables, subscribers, and other tedious sorts of things that I didn’t really want to mess with. Read more on Centralize Callback Handling by Creating a Reactive Signal…

Swift Tool Belt, Part 4: Extending UITableViewController

The fourth item in my Swift Tool Belt is an extension for UITableViewController. A UITableViewController is a view controller with a table view that takes up the entire screen. My extension provides a couple of methods to resize the header and footer of a table view. Read more on Swift Tool Belt, Part 4: Extending UITableViewController…

Swift Tool Belt, Part 3: Extending UILabel

The third item in my Swift Tool Belt is a couple of extensions on UILabel. These extensions will allow easy access to modify the edge insets on a label (the extra padding all around the text). There’s also an extension to add a rotation transform to a label. All of these extensions will be IBDesignable and IBInspectable for easy modification from Xcode’s Interface Builder. Read more on Swift Tool Belt, Part 3: Extending UILabel…

Swift Tool Belt, Part 2: Extending Date

The second item in my Swift Tool Belt is an extension on the Date class. The interface to the Date class in iOS is very powerful, but in my opinion, it is not very readable. Simple operations to add/remove time to a date can be several lines long. Many of my extensions help with the readability of the class. Read more on Swift Tool Belt, Part 2: Extending Date…

Swift Tool Belt, Part 1: Adding a Border, Corner Radius, and Shadow to a UIView with Interface Builder

During my iOS work, I’ve assembled a set of code that I bring with me on every iOS project. I’m not talking about large frameworks or CocoaPods here. These are smaller Swift extensions or control overrides that are applicable to many projects. I think of them as my tool belt. Read more on Swift Tool Belt, Part 1: Adding a Border, Corner Radius, and Shadow to a UIView with Interface Builder…