Explore the various UI frameworks available for building app interfaces. Discuss the use cases for different frameworks, share best practices, and get help with specific framework-related questions.

All subtopics
Posts under UI Frameworks topic

Post

Replies

Boosts

Views

Activity

Segmented & Contianer
"When implementing SegmentedControl for container navigation on Apple Duo: What's the optimal segment placement when the screen is folded (top, side, or hidden)? How do we handle segment state persistence across fold transitions? Should we use a single SegmentedControl for both screens or separate ones per display? Are there performance implications for frequent container switching on dual screens?"
Topic: UI Frameworks SubTopic: UIKit
0
0
34
2d
Backporting new SwiftUI views
Will the new SwiftUI views added to support the duo (like ArrangementView) be backported to older iOS versions or will we have to provide different implementations if we still want to support iOS 26?
Topic: UI Frameworks SubTopic: SwiftUI
1
0
40
2d
Segment & Container Usage
Should we implement different layouts for iPad (horizontal) vs Apple Duo (dual-screen)? How should we preserve the segment selection state during fold/unfold transitions? Should the segment bar be fixed or part of scrollable content? For dual-screen navigation, is TabBar or SegmentedControl more appropriate on Duo?"
Topic: UI Frameworks SubTopic: UIKit
0
0
7
2d
Custom tool toolbars and fold postures on iPhone Duo (UIKit/Objective-C, iOS 27.1 SDK)
We have a mature Objective-C/UIKit PDF editor. Its editing UI uses two custom toolbar views that we build and lay out ourselves, so they aren't UINavigationBar or UIToolbar items: a tool-selection bar (annotate, edit, sign and so on), and a tools bar that shows the tools for the selected mode, with contextual options. They hold custom controls, selection state and popovers that can't be expressed as bar button items, so moving to UINavigationBar or UIToolbar isn't realistic for us. Right now we swap between a compact and a regular toolbar layout on size-class changes (traitCollectionDidChange:), and handle geometry in viewWillTransitionToSize:withTransitionCoordinator:. Questions: Posture changes: When the device folds or unfolds, what's the recommended way for custom toolbar views to adapt? Should we rely on size-class and size transitions only, or is there a posture signal we should observe? Fold region: How should custom bars avoid the fold? Is it exposed through safe areas or a layout guide, or should we split a bar across both halves? Placement: In a partially folded (tabletop) posture, is there guidance on moving tool bars to the lower half, the way the system does for its own bars? Workarounds: If the system bar behavior for fold postures isn't available to custom views, what have others done? For example, hosting our custom views inside system bars, or mirroring system bar positioning manually. Suggestions or pointers to docs, sample code or WWDC sessions would be much appreciated. Thanks!
Topic: UI Frameworks SubTopic: UIKit
0
1
49
2d
UI Design
"How should our application's components (campaign cards, payment flows, bottom sheets) be displayed on iPad and Apple Duo? Should we adapt our current iPhone-only design to iPad, or create separate layouts? Should layouts work seamlessly during fold/unfold transitions on Apple Duo? Can we reuse the same storyboards and XIBs, or do we need device-specific implementations? Are Size Classes sufficient, or do we need custom breakpoints for these different screen sizes?"
Topic: UI Frameworks SubTopic: UIKit
0
0
16
2d
UIArrangementViewController Split Ratio
How can we do this in UIKit using UIArrangementViewController? I can’t find an equivalent to splitArrangementLayoutRatio. I did find UISplitArrangement.Dimension.fractional(CGFloat), but I can’t find a way to apply it to UIArrangementViewController, and I’m not even sure whether .fractional is intended for this purpose. ArrangementView { ConversationView() .splitArrangementLayoutRatio(0.3) } secondary: { PhotosView() } .arrangementViewStyle(.split.axes(.horizontal))
Topic: UI Frameworks SubTopic: UIKit
1
0
86
2d
Security Concern : Clarification on iOS App Switcher Snapshot Storage and User Accessibility
Security concern: To provide a visually appealing transition when launching or leaving an application, iOS introduced a feature that automatically captures a screenshot of the current view when an app is moved to the background. This screenshot is subsequently displayed as a preview in the App Switcher. There is security concern that the app shows sensitive information like activation codes or chat histories in the preview image of the App Switcher Need clarification on the following points: 1.Where exactly are these App Switcher preview screenshots stored on the device filesystem? 2.Can these App Switcher snapshots be accessed on a jailbroken iOS device? 3.Are these snapshots stored inside the application container or in a system-managed location outside the app sandbox? Can any Third party application or tool can access this screenshots in iOS device? 5.Is there any Apple-recommended API, entitlement, or platform-supported mechanism on iOS to prevent screenshots in iOS
1
0
260
2d
Custom floating bottom right button
I have a floating bottom right button in my app (similar to twitter/x's blue compose button). I have no tab bar. When moving to the duo, this floating button now appears to the left of an empty tabbar/toolbar area on the right of the device. Ideally I want it to be inside the new tabbar/toolbar area when on the duo, as otherwise its wasted space. Is there anything new/inbuilt that I can leverage to manage this? Can I put my button into some container somewhere so that its the bottom right of the screen on an iPhone and automatically move to the toolbar area on duo? Something like a single item, right aligned, tabbar would be a great option. But the new liquid glass tabbar comes with too many restrictions on colors/styling I'm trying to find a way to avoid having logic like this in the app, as device specific logic becomes a maintenance issue int he future: if device == duo { // create toolbar button } else { // create button button and appen } d to window
Topic: UI Frameworks SubTopic: UIKit
1
2
76
2d
XCUITest accessibility snapshot reports stale frames during live scene resize
We exercise four layout modes in our SwiftUI app and need to drive them in UI tests. While a scene is resized live via xcrun devicectl device appResize, XCUITest's accessibility snapshot appears to carry a stale scale. With 951×669 requested, app.windows.firstMatch.frame comes back as {317, 223}, which is inconsistent with the app's own reading of its window (951×629 from our debug readout). Individual element frames are similarly tiny (a text label reports 2.9×0.9 pt). As a result .tap() appears to target the right element but the sheet never opens. We verified this with debugDescription dumps across two separate attempts, on clean boots. Is this a known limitation of XCUITest during live scene resizing, and is there a supported way to force the accessibility snapshot to refresh after a resize?
Topic: UI Frameworks SubTopic: SwiftUI
1
0
24
2d
Finger input interrupted while drawing with Apple Pencil + palm resting on display
I’m investigating an issue with simultaneous Apple Pencil and finger input on iPad. Apple Pencil + finger input works correctly while the Pencil user’s hand/palm is off the display. However, when drawing naturally with Apple Pencil with the palm resting on the display, an existing finger drawing contact elsewhere on the screen can be cancelled and then stop receiving input for several seconds. Pencil input continues normally throughout. Initially I suspected PencilKit, but I’ve reproduced the underlying behaviour below PencilKit/SwiftUI. Instrumenting UIKit at UIApplication.sendEvent shows the finger touch being cancelled and, in some cases, no further events for that finger for ~4–5 seconds while Pencil MOVED events continue to arrive normally. Everything delivered to the application is accounted for, so this appears to occur before our drawing/rendering code. Is this expected behaviour from the iPad’s Pencil/palm rejection? More specifically: Is there any supported way to tell UIKit that an existing finger contact should remain intentional while Pencil + palm contact is present? Is palm rejection configurable at this level? Is there another public input API we should be using for this scenario? We’re currently testing UIEvent.coalescedTouches(for:) to determine whether additional genuine finger samples are available during these apparent gaps, but haven’t completed that test yet. Any guidance on whether this interaction is expected to be supportable through public UIKit APIs would be appreciated.
1
0
300
2d
UITableView layout (inner display)
What is the recommended way if you have a UITableView and you want to move the first cell (complex chart) on the inner display to the left side of the layout and all the other cells on the right side. There are many ways to do that, but what would you recommend?
Topic: UI Frameworks SubTopic: UIKit
1
0
62
2d
iPhone Duo lying fully open and face-up: interface orientation, and rotating one ArrangementView region 180°
We're designing a two-person layout for iPhone Duo. The device lies fully open and flat on a table between two people facing each other. The inner display is in portrait orientation and split with ArrangementView using the default .split style, which stacks the regions in a tall window. Each person gets the half nearest them, and the far region uses .rotationEffect(.degrees(180)) so it faces the second person. The hinge isn't used for layout. While iPhone Duo lies fully open and face-up, does the interface orientation stay stable if the device is nudged or turned on the table? Is there a recommended way to hold it steady for one screen without restricting orientation app-wide? Is rotating one arrangement region 180° a supported pattern? Specifically, do the reserved regions from GeometryProxy.reservedRegions(kind:options:) need to be converted into the rotated region's coordinate space by hand? And do VoiceOver hit-testing and the focus ring follow the rotation? In an immersive full-screen view in this posture, can the status bar be hidden? If not, what's the recommended handling of its occlusion region, which would appear upside down to the second person?
0
0
37
2d
How should a phone-optimized Home screen adapt to iPhone Duo?
I recently redesigned an ISP management app where the Home screen is intentionally designed around a single iPhone display: connection status, billing, support, promotions, and navigation are arranged in a compact vertical hierarchy. On iPhone Duo, simply expanding this layout would introduce a lot of empty space and make some of the cards unnecessarily large. But completely redesigning the Home screen for Duo could also make the experience inconsistent. What would you recommend as the design approach here? Should we recompose the Home screen for the additional space, or is it sometimes better to intentionally keep a phone-optimized content width even when more space is available?
Topic: UI Frameworks SubTopic: SwiftUI
1
0
55
2d
UndoManager access from Keyboard extension
Hi,I'm trying to implement undo and redo, in a Custom keyboard extension. However, calling undo() on the UndoManager from UIInputViewController, doesn't seems to work. Is there any other way of getting the UndoManager from the app the keyboard is connected to?Or do I need create my own logic to store what a user has written?
Topic: UI Frameworks SubTopic: UIKit Tags:
1
1
380
2d
Hinge listeners don't work in Keyboard Extension on iPhone Duo (iOS 27.1)
Hi, I've discovered that my Keyboard Extension is unable to detect any hinge status update on iPhone Duo. I tired both UIKit and SwiftUI approach - nothing works. Is there any workaround to make it work? Reproducible demo: https://www.icloud.com/iclouddrive/0460exMJtAdRkpk8EDjb751nw Xcode 27.1 (27A9269) iOS 27.1 beta 1 (24A94401) I also created a bug report: FB24883137
1
1
212
2d
Recommended SwiftUI API for observing fold posture on iPhone Duo
Our adaptive split layout currently pins the posture to .flat because we could not find the supported way to read the device's fold state. What is the recommended SwiftUI API for observing fold posture and hinge geometry on iPhone Duo, and does it report correctly in the simulator as well as on device? We also want to know whether the hinge region is exposed so we can keep content out of it.
Topic: UI Frameworks SubTopic: SwiftUI
1
0
34
2d
Segmented & Contianer
"When implementing SegmentedControl for container navigation on Apple Duo: What's the optimal segment placement when the screen is folded (top, side, or hidden)? How do we handle segment state persistence across fold transitions? Should we use a single SegmentedControl for both screens or separate ones per display? Are there performance implications for frequent container switching on dual screens?"
Topic: UI Frameworks SubTopic: UIKit
Replies
0
Boosts
0
Views
34
Activity
2d
Backporting new SwiftUI views
Will the new SwiftUI views added to support the duo (like ArrangementView) be backported to older iOS versions or will we have to provide different implementations if we still want to support iOS 26?
Topic: UI Frameworks SubTopic: SwiftUI
Replies
1
Boosts
0
Views
40
Activity
2d
UIUserInterfaceIdiom for Duo is still ".phone" ?
We are wondering if there would be a new enum case for UIUserInterfaceIdiom for iPhone Duo or we should use the case .phone
Topic: UI Frameworks SubTopic: SwiftUI
Replies
1
Boosts
1
Views
71
Activity
2d
Segment & Container Usage
Should we implement different layouts for iPad (horizontal) vs Apple Duo (dual-screen)? How should we preserve the segment selection state during fold/unfold transitions? Should the segment bar be fixed or part of scrollable content? For dual-screen navigation, is TabBar or SegmentedControl more appropriate on Duo?"
Topic: UI Frameworks SubTopic: UIKit
Replies
0
Boosts
0
Views
7
Activity
2d
Custom tool toolbars and fold postures on iPhone Duo (UIKit/Objective-C, iOS 27.1 SDK)
We have a mature Objective-C/UIKit PDF editor. Its editing UI uses two custom toolbar views that we build and lay out ourselves, so they aren't UINavigationBar or UIToolbar items: a tool-selection bar (annotate, edit, sign and so on), and a tools bar that shows the tools for the selected mode, with contextual options. They hold custom controls, selection state and popovers that can't be expressed as bar button items, so moving to UINavigationBar or UIToolbar isn't realistic for us. Right now we swap between a compact and a regular toolbar layout on size-class changes (traitCollectionDidChange:), and handle geometry in viewWillTransitionToSize:withTransitionCoordinator:. Questions: Posture changes: When the device folds or unfolds, what's the recommended way for custom toolbar views to adapt? Should we rely on size-class and size transitions only, or is there a posture signal we should observe? Fold region: How should custom bars avoid the fold? Is it exposed through safe areas or a layout guide, or should we split a bar across both halves? Placement: In a partially folded (tabletop) posture, is there guidance on moving tool bars to the lower half, the way the system does for its own bars? Workarounds: If the system bar behavior for fold postures isn't available to custom views, what have others done? For example, hosting our custom views inside system bars, or mirroring system bar positioning manually. Suggestions or pointers to docs, sample code or WWDC sessions would be much appreciated. Thanks!
Topic: UI Frameworks SubTopic: UIKit
Replies
0
Boosts
1
Views
49
Activity
2d
UI Design
"How should our application's components (campaign cards, payment flows, bottom sheets) be displayed on iPad and Apple Duo? Should we adapt our current iPhone-only design to iPad, or create separate layouts? Should layouts work seamlessly during fold/unfold transitions on Apple Duo? Can we reuse the same storyboards and XIBs, or do we need device-specific implementations? Are Size Classes sufficient, or do we need custom breakpoints for these different screen sizes?"
Topic: UI Frameworks SubTopic: UIKit
Replies
0
Boosts
0
Views
16
Activity
2d
APIs to lookout when migrating from App Delegate to SceneDelegate
Our app still supports iOS12, and still in the App Delegate, and we are expected to migrate and update our minimum iOS version to iOS15. What APIs should we review in the docs related to lifecycles, device and screen bounds, what expected breaking in UI as we are using custom navigation toolbars, and custom tab bars.
Topic: UI Frameworks SubTopic: UIKit
Replies
2
Boosts
0
Views
91
Activity
2d
UIArrangementViewController Split Ratio
How can we do this in UIKit using UIArrangementViewController? I can’t find an equivalent to splitArrangementLayoutRatio. I did find UISplitArrangement.Dimension.fractional(CGFloat), but I can’t find a way to apply it to UIArrangementViewController, and I’m not even sure whether .fractional is intended for this purpose. ArrangementView { ConversationView() .splitArrangementLayoutRatio(0.3) } secondary: { PhotosView() } .arrangementViewStyle(.split.axes(.horizontal))
Topic: UI Frameworks SubTopic: UIKit
Replies
1
Boosts
0
Views
86
Activity
2d
Security Concern : Clarification on iOS App Switcher Snapshot Storage and User Accessibility
Security concern: To provide a visually appealing transition when launching or leaving an application, iOS introduced a feature that automatically captures a screenshot of the current view when an app is moved to the background. This screenshot is subsequently displayed as a preview in the App Switcher. There is security concern that the app shows sensitive information like activation codes or chat histories in the preview image of the App Switcher Need clarification on the following points: 1.Where exactly are these App Switcher preview screenshots stored on the device filesystem? 2.Can these App Switcher snapshots be accessed on a jailbroken iOS device? 3.Are these snapshots stored inside the application container or in a system-managed location outside the app sandbox? Can any Third party application or tool can access this screenshots in iOS device? 5.Is there any Apple-recommended API, entitlement, or platform-supported mechanism on iOS to prevent screenshots in iOS
Replies
1
Boosts
0
Views
260
Activity
2d
Horizontal Scrolling Beyond Vertical Safe Area
Is it acceptable to have horizontal scrolling below tab view/ toolbar(Vertical Safe Area) on iPhone Duo or should I clipped it? Thank you
Topic: UI Frameworks SubTopic: SwiftUI
Replies
0
Boosts
1
Views
49
Activity
2d
Custom floating bottom right button
I have a floating bottom right button in my app (similar to twitter/x's blue compose button). I have no tab bar. When moving to the duo, this floating button now appears to the left of an empty tabbar/toolbar area on the right of the device. Ideally I want it to be inside the new tabbar/toolbar area when on the duo, as otherwise its wasted space. Is there anything new/inbuilt that I can leverage to manage this? Can I put my button into some container somewhere so that its the bottom right of the screen on an iPhone and automatically move to the toolbar area on duo? Something like a single item, right aligned, tabbar would be a great option. But the new liquid glass tabbar comes with too many restrictions on colors/styling I'm trying to find a way to avoid having logic like this in the app, as device specific logic becomes a maintenance issue int he future: if device == duo { // create toolbar button } else { // create button button and appen } d to window
Topic: UI Frameworks SubTopic: UIKit
Replies
1
Boosts
2
Views
76
Activity
2d
XCUITest accessibility snapshot reports stale frames during live scene resize
We exercise four layout modes in our SwiftUI app and need to drive them in UI tests. While a scene is resized live via xcrun devicectl device appResize, XCUITest's accessibility snapshot appears to carry a stale scale. With 951×669 requested, app.windows.firstMatch.frame comes back as {317, 223}, which is inconsistent with the app's own reading of its window (951×629 from our debug readout). Individual element frames are similarly tiny (a text label reports 2.9×0.9 pt). As a result .tap() appears to target the right element but the sheet never opens. We verified this with debugDescription dumps across two separate attempts, on clean boots. Is this a known limitation of XCUITest during live scene resizing, and is there a supported way to force the accessibility snapshot to refresh after a resize?
Topic: UI Frameworks SubTopic: SwiftUI
Replies
1
Boosts
0
Views
24
Activity
2d
Finger input interrupted while drawing with Apple Pencil + palm resting on display
I’m investigating an issue with simultaneous Apple Pencil and finger input on iPad. Apple Pencil + finger input works correctly while the Pencil user’s hand/palm is off the display. However, when drawing naturally with Apple Pencil with the palm resting on the display, an existing finger drawing contact elsewhere on the screen can be cancelled and then stop receiving input for several seconds. Pencil input continues normally throughout. Initially I suspected PencilKit, but I’ve reproduced the underlying behaviour below PencilKit/SwiftUI. Instrumenting UIKit at UIApplication.sendEvent shows the finger touch being cancelled and, in some cases, no further events for that finger for ~4–5 seconds while Pencil MOVED events continue to arrive normally. Everything delivered to the application is accounted for, so this appears to occur before our drawing/rendering code. Is this expected behaviour from the iPad’s Pencil/palm rejection? More specifically: Is there any supported way to tell UIKit that an existing finger contact should remain intentional while Pencil + palm contact is present? Is palm rejection configurable at this level? Is there another public input API we should be using for this scenario? We’re currently testing UIEvent.coalescedTouches(for:) to determine whether additional genuine finger samples are available during these apparent gaps, but haven’t completed that test yet. Any guidance on whether this interaction is expected to be supportable through public UIKit APIs would be appreciated.
Replies
1
Boosts
0
Views
300
Activity
2d
UITableView layout (inner display)
What is the recommended way if you have a UITableView and you want to move the first cell (complex chart) on the inner display to the left side of the layout and all the other cells on the right side. There are many ways to do that, but what would you recommend?
Topic: UI Frameworks SubTopic: UIKit
Replies
1
Boosts
0
Views
62
Activity
2d
iPhone Duo lying fully open and face-up: interface orientation, and rotating one ArrangementView region 180°
We're designing a two-person layout for iPhone Duo. The device lies fully open and flat on a table between two people facing each other. The inner display is in portrait orientation and split with ArrangementView using the default .split style, which stacks the regions in a tall window. Each person gets the half nearest them, and the far region uses .rotationEffect(.degrees(180)) so it faces the second person. The hinge isn't used for layout. While iPhone Duo lies fully open and face-up, does the interface orientation stay stable if the device is nudged or turned on the table? Is there a recommended way to hold it steady for one screen without restricting orientation app-wide? Is rotating one arrangement region 180° a supported pattern? Specifically, do the reserved regions from GeometryProxy.reservedRegions(kind:options:) need to be converted into the rotated region's coordinate space by hand? And do VoiceOver hit-testing and the focus ring follow the rotation? In an immersive full-screen view in this posture, can the status bar be hidden? If not, what's the recommended handling of its occlusion region, which would appear upside down to the second person?
Replies
0
Boosts
0
Views
37
Activity
2d
How should a phone-optimized Home screen adapt to iPhone Duo?
I recently redesigned an ISP management app where the Home screen is intentionally designed around a single iPhone display: connection status, billing, support, promotions, and navigation are arranged in a compact vertical hierarchy. On iPhone Duo, simply expanding this layout would introduce a lot of empty space and make some of the cards unnecessarily large. But completely redesigning the Home screen for Duo could also make the experience inconsistent. What would you recommend as the design approach here? Should we recompose the Home screen for the additional space, or is it sometimes better to intentionally keep a phone-optimized content width even when more space is available?
Topic: UI Frameworks SubTopic: SwiftUI
Replies
1
Boosts
0
Views
55
Activity
2d
UndoManager access from Keyboard extension
Hi,I'm trying to implement undo and redo, in a Custom keyboard extension. However, calling undo() on the UndoManager from UIInputViewController, doesn't seems to work. Is there any other way of getting the UndoManager from the app the keyboard is connected to?Or do I need create my own logic to store what a user has written?
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
1
Boosts
1
Views
380
Activity
2d
Hinge listeners don't work in Keyboard Extension on iPhone Duo (iOS 27.1)
Hi, I've discovered that my Keyboard Extension is unable to detect any hinge status update on iPhone Duo. I tired both UIKit and SwiftUI approach - nothing works. Is there any workaround to make it work? Reproducible demo: https://www.icloud.com/iclouddrive/0460exMJtAdRkpk8EDjb751nw Xcode 27.1 (27A9269) iOS 27.1 beta 1 (24A94401) I also created a bug report: FB24883137
Replies
1
Boosts
1
Views
212
Activity
2d
ScenePhase call
If the Duo goes from a closed to open and vise versa does the ScenePhase get called?
Topic: UI Frameworks SubTopic: SwiftUI
Replies
1
Boosts
0
Views
24
Activity
2d
Recommended SwiftUI API for observing fold posture on iPhone Duo
Our adaptive split layout currently pins the posture to .flat because we could not find the supported way to read the device's fold state. What is the recommended SwiftUI API for observing fold posture and hinge geometry on iPhone Duo, and does it report correctly in the simulator as well as on device? We also want to know whether the hinge region is exposed so we can keep content out of it.
Topic: UI Frameworks SubTopic: SwiftUI
Replies
1
Boosts
0
Views
34
Activity
2d