サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ノーベル賞
useyourloaf.com
Before you switch to a custom font don’t overlook how much you can tweak the appearance of the system fonts. A quick review of some font APIs that work for both UIKit and SwiftUI. Tweaking The System Fonts Here’s my starting point. I’m using dynamic type with a large title and body text. I’m not going to spend time on the layout details. (See this post on scroll view layouts for a UIKit example).
Laying out a scroll view is a confusing task. I found it easier when, in iOS 11, Apple introduced frame and content layout guides. Too bad they neglected to add them to Interface Builder. That changed in Xcode 11. Here’s a quick guide on how to use them. Why Are Scroll View Layouts So Hard? For a recap on why scroll views are confusing and how the frame and content layout guides help see this earl
How do you add internal padding to a stack view? How about when the stack view has readable content and you want to limit the line length? You can do it in Interface Builder or in code but both have oddities. Stack view readable content guides certainly don’t work the way I would expect or hope. Last updated: Nov 8, 2022 Stack View Margins The whole point of a stack view is that it creates the con
Apple added PDF vector images to the Xcode asset catalog in Xcode 6. It is a convenient way to build the image assets at 1x, 2x and 3x resolution without the pain of manually creating each file. What it did not do was give you truly scaleable vector images. Stretching an image above its base size left you with some ugly, fuzzy results. That changes with Xcode 9 with the possibility to keep the vec
When Apple revealed the iPhone X with a top “notch” and bottom home screen indicator the reason behind some SDK changes at WWDC 2017 became clearer. Safe area layout guides may help but there are still some gotchas for table/collection views and the search bar. Safe Area Layout Guide Apple added the safe area layout guide in iOS 11 replacing the top and bottom layout guides with a single guide. He
When Apple introduced stack views in iOS 9 they made it much easier to use Auto Layout by reducing the number of constraints you needed to create yourself for many common layouts. One edge case that was not well covered was the need for custom spacing between views. You could do it by nesting stack views but that always seemed an unnecessary complication. In iOS 11 you can create stack views with
Apple introduced the topLayoutGuide and bottomLayoutGuide as properties of UIViewController way back in iOS 7. They allowed you to create constraints to keep your content from being hidden by UIKit bars like the status, navigation or tab bar. These layout guides are deprecated in iOS 11 and replaced by a single safe area layout guide. Top and Bottom Layouts Guides - A Recap An example of using the
Making a table view header that automatically adjusts (self-sizes) its height to allow its contents to fit should not be so hard. Unfortunately it is a problem that has been with us for a number of years which means much of the advice on how to do it is out of date. This is what works for me. Last updated: Jun 12, 2020 The Problem I want to show a text message as a header to a table view. The size
Swift 3 has brought us some interesting access control changes. The differences between open and public or private and fileprivate take some getting used to. Luckily unless you are writing a framework the new rules are simple. Here is what you need to know. Note: Swift 4 has changed the scope of private access reducing the need to use fileprivate for extension access. See Swift 4 access levels for
Using map, filter or reduce to operate on Swift collection types such as Array or Dictionary is something that can take getting used to. Unless you have experience with functional languages your instinct may be to reach for the more familiar for-in loop. With that in mind here is my guide to using map, filter, reduce (and flatMap and compactMap). Last updated: May 1, 2018 Map Use map to loop over
If you can target iOS 9 Layout Anchors and Layout Guides make Auto Layout a lot easier. In this post I want to cover a special type of layout guide - the readable content guide. If you have text that stretches across the width of the device you can get lines that are so long they become hard to read. This is especially true on larger devices like the iPad. The readable content guide creates an are
Apple continues to put a high priority on protecting the privacy of a user so it should be no surprise that iOS 9 brings new security and privacy measures. One such measure is to prevent the abuse of canOpenURL to discover the Apps a user has installed. Querying a URL Scheme It has long been possible to open an external application using the openURL: method. Typically you first query for the URL s
The Swift String API is hard to get used to. It has also changed over time as the Swift language and the standard library have developed. I first wrote this guide for Swift 2 and have since needed to update it for Swift 3, 4 and now Swift 5. So for my future reference and yours if you are struggling to make sense of it all here is my Swift String Cheat Sheet: Last updated: Nov 10, 2022 Xcode Playg
As part of the theme of iOS 8 to make interfaces adaptive there are some major changes to the presentation of view controllers. The new UIPresentationController does a lot of the hard work of animating view controller transitions and adapting to device size changes such as rotation. It also brings some big changes to some old UIKit favourites such as alert views, action sheets, popovers and search
Last updated: Jun 12, 2020 It only took five years but this is much easier to do with Interface Builder in Xcode 11. See Self Sizing Table View Cells in Interface Builder Dynamic Type Everywhere I covered the basics of supporting dynamic type some time ago. Introduced in iOS 7, dynamic type allows the user to specify a preferred reading size for text. In the upcoming release of iOS 8 the Apple int
I don’t remember where I first saw this mentioned so I cannot give proper credit but this is an interesting tip to try if you have five minutes. Open Source Builds of the Clang Analyzer The Clang Static Analyzer has long been integrated with Xcode and provides powerful source code analysis to detect bugs in C, C++ and Objective-C code. The analyzer is fully open source and part of the larger Clang
iOS Developers Start Here Not sure where to get started? Try some of these popular topics or browse the latest articles. Popular Articles
A minor but interesting feature introduced to the debugger in Xcode 5.0 and extended in Xcode 5.1 is support for Quick Look to display variables. With a variable selected you can either use the small eye icon or use the space bar with the variable selected in the debugger variables view. A Quick Look popup window then shows you the contents graphically in a popup box. The example below is for UICo
The Social framework is now deprecated, this post is left for historical purposes only. It is a little over two years ago that I posted about searching Twitter with iOS. In the meantime the Twitter API v1 has been retired and replaced by the Twitter Search API v1.1. This post will look at what I had to do to migrate to the new API. A Twitter Search Application I am not going to repeat all of the d
Xcode 4.6 introduced a number of additional compiler warnings that are enabled by default for new projects. Unfortunately the release notes are none too clear about the new options: LLVM: New compiler warnings to help find subtle behavioral bugs when using automatic release counting (ARC) and weak references. If you have an existing project you can update to the new recommended build settings from
The release of OS X 10.8 Mountain Lion this week also brought us an Xcode release with some long awaited Objective-C improvements. If you upgraded your development machine to Mountain Lion you should check the Mac App Store for the Xcode 4.4 update. If you are more cautious and are staying with OS X 10.7 Lion you can still upgrade to Xcode 4.4 (according to the release notes you will need to be on
I previously posted about using the Network Link Conditioner to create realistic and “challenging” network conditions when testing iOS apps. In this post I want to highlight another useful network debugging tool which allows you capture network traffic from an iOS device. Remote Virtual Interfaces As with the Network Link Conditioner you need to use a host Mac computer to perform remote packet cap
In a previous post I examined how with iOS 5 it became much easier to customise the appearance of some common UIKit controls using resizable images. In this post I want to go a little further and look at how to use appearance proxies to more fully style an applications user interface. I should mention that I am writing this post a few weeks ahead of the expected release of iOS 6. This discussion i
After upgrading to Mountain Lion I have been hitting some problems with my Mac sleeping when I was expecting it be doing some work. Typically this happens when I leave it running a script that I expect to take several hours. On my return I find the network connection has dropped and the machine has gone to sleep leaving the job unfinished. The explanation and solution lies in the changes to power
The NSNumberFormatter is one of those useful Foundation classes that is easy to forget about. It has a simple purpose of allowing you to flexibly convert backwards and forwards between numbers (NSNumber) and localised string (NSString) representations of those numbers. This post is a collection of quick notes for some of the most common uses when converting a number to a string. NSNumberFormatterS
A quick tip on how to use the Mac OS X automount command to automatically mount a remote filesystem. You will need to be comfortable with the OS X command-line for this but once you know how it is fairly simple. Last updated: Feb 5, 2020 Why automount may be useful I have a number of remote filesystems that are stored on Network Attached Storage (NAS) devices connected to my local network wireless
When I first heard that iOS 5 had introduced the concept of a static table view that could be designed in Interface Builder I was disappointed to see that it was actually tied into storyboards. I have nothing against storyboards, they are an interesting innovation that can (potentially) save a lot of code. However if you are not yet ready to fully adopt storyboards for your user interface design y
Update 05-Sep-2014: See this later post on UIAlertController Changes in iOS 8 for a modern replacement of UIAlertView if you target iOS 8 or later. The UIAlertView class has been available since iOS 2. It is similar to the UIActionSheet class but generally the UIAlertView is used to display an alert message to the user whereas UIActionSheet is useful when you want the user to confirm or choose bet
Whilst I was playing around with Split View Controllers in my last post I missed one small trick to eliminate some code. I also overlooked a bug that I need to correct. The example made use of gesture recognizers to allow the master view to be swiped on and off screen. However I created and configured these objects in code rather than with Interface Builder. In this post I will show how easy it is
次のページ
このページを最初にブックマークしてみませんか?
『Use Your Loaf』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く