Post

Replies

Boosts

Views

Activity

Reply to Where do scroll indicators go on iPhone Duo?
My confusion about automatic safe area insets was due to a single dropdown in a collection view's storyboard: The storyboard was using "Content Inset", which I'm thinking might be a default value. Everything works fine after changing the dropdown to "Safe Area" (and a sectionInsetReference="safeArea" attribute is added to the storyboard object graph). This setting also led me to believe that table views didn't handle the situation automatically (they do). It seems to me that "Safe Area" is a better default these days - there are probably compatibility issues I'm not aware of, but folks moving their storyboards to the Duo will likely hit this issue and be confused just like I was.
Topic: UI Frameworks SubTopic: UIKit
Sep ’26
Reply to Where do scroll indicators go on iPhone Duo?
I think I might have answered my own question. When I encountered a collection view in my view hierarchy, I realized that adding a container view was intractable: the only views to modify are cells. It then occurred to me that I really want to adjust content inset, so I tried this: scrollingView.contentInset = view.safeAreaInsets That leaves the scroll indicators at the view edges and gets my content inside the safe area. Again, I'd like confirmation that this is the correct approach. And now I'm also wondering why this isn't the default behavior or something that can be modified in a storyboard. Any additional information would be greatly appreciated.
Topic: UI Frameworks SubTopic: UIKit
Sep ’26
Reply to Horizontal Size Classes on iPhone in iOS 27
For everyone else following along, here is a ZIP file that contains the project: https://files.iconfactory.net/craig/bugs/Resizer.zip And the steps to reproduce the issue: Open the attached project (Resizer.zip) in Xcode 27.0 beta 2 (27A5209h) Build & run the project in Device Hub Version 27.0 (244.2.3) using an iPhone 17 device Enter resize mode Resize the interface to 1280 x 960 Expected results: The NSAssert at line 31 or line 71 should fire because the horizontal size class is larger than compact. Actual results: The NSAssert never fires because the horizontal size class is always compact. Note: This behavior does not occur on the iPad: the asserts fire because the size class changes as the window is resized.
Topic: UI Frameworks SubTopic: UIKit Tags:
Jun ’26
Reply to Building macOS apps with Xcode 26 on macOS 26 VM
After some rebooting of the VM and restarting Xcode, I think the device provisioning was recognized. At least I was able to build and sign a sample app. Running it led to: The app is just the standard macOS SwiftUI template (with "Hello world" in the middle of a window). I added the iCloud key/value store capability to the template. It's hard to tell what runningboardd is doing in the Console (it spews A LOT of information). The best indicator is from Apparency https://mothersruin.com/software/Apparency/: The signing signature (from what looks like a valid certificate) is not accepted by Gatekeeper: I feel like we're really close here...
Jun ’25
Reply to Where do scroll indicators go on iPhone Duo?
My confusion about automatic safe area insets was due to a single dropdown in a collection view's storyboard: The storyboard was using "Content Inset", which I'm thinking might be a default value. Everything works fine after changing the dropdown to "Safe Area" (and a sectionInsetReference="safeArea" attribute is added to the storyboard object graph). This setting also led me to believe that table views didn't handle the situation automatically (they do). It seems to me that "Safe Area" is a better default these days - there are probably compatibility issues I'm not aware of, but folks moving their storyboards to the Duo will likely hit this issue and be confused just like I was.
Topic: UI Frameworks SubTopic: UIKit
Replies
Boosts
Views
Activity
Sep ’26
Reply to Where do scroll indicators go on iPhone Duo?
I think I might have answered my own question. When I encountered a collection view in my view hierarchy, I realized that adding a container view was intractable: the only views to modify are cells. It then occurred to me that I really want to adjust content inset, so I tried this: scrollingView.contentInset = view.safeAreaInsets That leaves the scroll indicators at the view edges and gets my content inside the safe area. Again, I'd like confirmation that this is the correct approach. And now I'm also wondering why this isn't the default behavior or something that can be modified in a storyboard. Any additional information would be greatly appreciated.
Topic: UI Frameworks SubTopic: UIKit
Replies
Boosts
Views
Activity
Sep ’26
Reply to Horizontal Size Classes on iPhone in iOS 27
For everyone else following along, here is a ZIP file that contains the project: https://files.iconfactory.net/craig/bugs/Resizer.zip And the steps to reproduce the issue: Open the attached project (Resizer.zip) in Xcode 27.0 beta 2 (27A5209h) Build & run the project in Device Hub Version 27.0 (244.2.3) using an iPhone 17 device Enter resize mode Resize the interface to 1280 x 960 Expected results: The NSAssert at line 31 or line 71 should fire because the horizontal size class is larger than compact. Actual results: The NSAssert never fires because the horizontal size class is always compact. Note: This behavior does not occur on the iPad: the asserts fire because the size class changes as the window is resized.
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
Boosts
Views
Activity
Jun ’26
Reply to Building macOS apps with Xcode 26 on macOS 26 VM
After some rebooting of the VM and restarting Xcode, I think the device provisioning was recognized. At least I was able to build and sign a sample app. Running it led to: The app is just the standard macOS SwiftUI template (with "Hello world" in the middle of a window). I added the iCloud key/value store capability to the template. It's hard to tell what runningboardd is doing in the Console (it spews A LOT of information). The best indicator is from Apparency https://mothersruin.com/software/Apparency/: The signing signature (from what looks like a valid certificate) is not accepted by Gatekeeper: I feel like we're really close here...
Replies
Boosts
Views
Activity
Jun ’25