Post

Replies

Boosts

Views

Activity

SwiftUI, iOS 26.2, ToolbarItem .largeTitle and .title, overlap issue
I built this very simple example to demonstrate the issue im facing on iOS 26 when trying to use custom ToolbarItem element for .largeTitle. Code: struct ContentView: View { var body: some View { NavigationStack { Screen() .navigationTitle("First") .toolbar { ToolbarItem(placement: .largeTitle) { Text("First") .font(.largeTitle) .border(Color.black) } } .navigationDestination(for: Int.self) { integer in DestinationScreen(integer: integer) } } } } struct Screen: View { var body: some View { List { ForEach(1..<50) { index in NavigationLink(value: index) { Text(index.description) .font(.largeTitle) } } } } } struct DestinationScreen: View { let integer: Int var body: some View { HStack { Text(integer.description) .font(.largeTitle) Spacer() } .padding() .navigationTitle(integer.description) .toolbar { ToolbarItem(placement: .largeTitle) { Text(integer.description) .font(.largeTitle) .border(Color.black) } } } } As shown on the gif, when navigating between pages, titles are going to overlap for a short while. Other questions: Why is it required for .navigationTitle() to exist (empty string wouldn't work!) so that the ToolbarItem .largeTitle can render at all? If none is added, this ToolbarItem simply won't appear Why isn't the large title naturally aligning to the leading side? Apple doc. doesn't mention any of this behaviour as far as I know but in general these placement should replicate known established behaviours, and .largeTitle should be leading aligned. Another issue is shown on the image below. When using both .largeTitle and .title (to simulate the same behaviour of transition between large and inline title when scrolling), both will appear at the same time. The large title will disappear as you scroll down which is fine.
Topic: UI Frameworks SubTopic: SwiftUI
3
0
547
Aug ’26
Bug: Tip comes back as pending first, then available when reloading screen
When loading screen, I scan for tips: private lazy var scanAreaTipTask = Task { @MainActor in for await shouldDisplay in scanAreaTip.statusUpdates { if shouldDisplay == .available { onSetBeacon.send(.scanArea(scanAreaTip, .show)) } else { onSetBeacon.send(.scanArea(scanAreaTip, .hide)) scanAreaTipFinished = true } } } Task is called in ViewDidAppear of the UIViewController. First time I load this view controller, the scanAreaTip.statusUpdates always comes back as pending. If I quit this view controller and open it again, the scanAreaTip.statusUpdates will come back as available. Why does it always come back as pending on the first opening where it should come back as available? This is the tip that I am using. As shown, there aren't any rules or options used. Just a plain tip that should show straight away. public struct ScanAreaTip: Tip { public init() {} public var title: Text { Text("Scan area around you") .brandFont(style: .regular(.headline)) .foregroundStyle(Color.accentColor) } }
1
0
841
Oct ’23
TipUIPopoverViewController disables all the views from presenting screen
when using Tips with UIKit, presenting TipUIPopoverViewController disables all the buttons from the presenting screen. I assume this is the expected behaviour but is there a way to disable it? I would like the button that the tip is pointing to to be still enabled. Otherwise user has to tap on it twice which is not ideal. Method checking for tip's eligibility. private extension MenuViewController { func activateTips() { Task { @MainActor [weak self] in guard let self else { return } for await shouldDisplay in createMapTip.shouldDisplayUpdates { if shouldDisplay { let controller = TipUIPopoverViewController(createMapTip, sourceItem: createMapButton) { [weak self] action in if action.id == "LearnAboutMaps" { if self?.presentedViewController is TipUIPopoverViewController { self?.dismiss(animated: true) { self?.createMapTip.invalidate(reason: .actionPerformed) self?.viewModel.handle(.didTapLearnMoreAboutMaps) } } } } present(controller, animated: true) } else if presentedViewController is TipUIPopoverViewController { dismiss(animated: true) } } } } }
2
0
1.3k
Oct ’23
ARKit, Recorded Session from RealityComposer, application error (screen frozen after the installing pipeline).
I am trying to run the application on the iPad M1 Device pinned to the Xcode debugger. The scheme has the Replay data enabled with the film prerecorded from the very same iPad M1. Errors: 2022-09-19 19:21:52.790061+0100 ARPathFinder[1373:320166] ⛔️⛔️⛔️ ERROR [MOVReaderInterface]: Error Domain=com.apple.AppleCV3DMOVKit.readererror Code=9 "CVAUserEvent: Error Domain=com.apple.videoeng.streamreaderwarning Code=0 "Cannot grab metadata. Unknown metadata stream 'CVAUserEvent'." UserInfo={NSLocalizedDescription=Cannot grab metadata. Unknown metadata stream 'CVAUserEvent'.}" UserInfo={NSLocalizedDescription=CVAUserEvent: Error Domain=com.apple.videoeng.streamreaderwarning Code=0 "Cannot grab metadata. Unknown metadata stream 'CVAUserEvent'." UserInfo={NSLocalizedDescription=Cannot grab metadata. Unknown metadata stream 'CVAUserEvent'.}} ⛔️⛔️⛔️ 2022-09-19 19:21:54.103813+0100 ARPathFinder[1373:320166] [Session] ARSession <0x104f77ec0>: did fail with error: Error Domain=com.apple.arkit.error Code=101 "Required sensor unavailable." UserInfo={NSLocalizedDescription=Required sensor unavailable., NSLocalizedFailureReason=A required sensor is not available on this device.} Any help will be appreciated, thanks.
1
2
1.4k
Dec ’22
Restoring "larger" ARWorldMap crashes the app.
Restoring "larger" ARWorldMap causes the app to crash. I am saying larger because the very same map saved earlier, with fewer anchors and feature points, does not crash and maps properly. It seems that the size of the ARWorldMap may make a difference or rather the amount of tracked anchors and feature points. I am not sure what made the exact difference but here is the ARWorldMap object and its specs: <ARWorldMap: 0x281c0cb40 center=(3.393822 0.345988 7.653722) extent=(21.671013 7.832555 20.250080) | 130 anchors, 9326 features> Tracking data: 20.4 MB The ARWorldMap is correctly fetched from the memory and passed to the configuration:  if let map = retrieveMap() {     configuration.initialWorldMap = map } The app crashes precisely before it correctly maps the surroundings.     func session(_ session: ARSession, cameraDidChangeTrackingState camera: ARCamera) {         switch session.currentFrame?.worldMappingStatus {         case .some(.mapped):             print("found") // Never executes with the "faulty" map         default:             print("problem")         }     } My situation seems to be related to this thread but not entirely. https://developer.apple.com/forums/thread/702596
0
1
882
Oct ’22
RealityKit, move(to:) methods works only without duration parameter
Using move(to:) method to update Entity's position works only if I don't use the the initialiser with duration parameter. sphere.move(to: newTransform, relativeTo: nil, duration: 0.75) // Absolutely no effect sphere.move(to: newTransform, relativeTo: nil) // Instant effect Both called from the Main thread. I don't understand what may cause this strange behaviour.
0
0
940
Oct ’22
How to improve on AR/VR learning path?
Hi everyone. I am a self-taught iOS developer for around a year and a half. It's going really great so far. But there is nothing that interests me more than AR-related/ Rendering technologies. I am learning by myself about RealityKit, SceneKit, ARKit. Surely it doesn't go fast, but it goes somehow. Don't want to mention the Metal, that one goes really slow. Is anyone able to recommend some courses/ teachings not only about these techs specifically but also about some fundamental knowledge that I could possess to make that learning a little more efficient? When working with Entities and their position, it's clear that I am missing fundamental math. I've searched for some courses about Algebra/Trigonometry but there is a ton of it, and I'm not quite sure which ones should I pick to follow the AR path. I've got all the possible notes from WWDCs about RealityKit/ARKit. But it's not enough. Metal WWDCs are simply too complicated for me at this level. I am trying to catch on to some C++ in my spare time but there is little time left for that. I would highly appreciate your help. Thanks
2
0
2.2k
Jan ’22
SwiftUI, iOS 26.2, ToolbarItem .largeTitle and .title, overlap issue
I built this very simple example to demonstrate the issue im facing on iOS 26 when trying to use custom ToolbarItem element for .largeTitle. Code: struct ContentView: View { var body: some View { NavigationStack { Screen() .navigationTitle("First") .toolbar { ToolbarItem(placement: .largeTitle) { Text("First") .font(.largeTitle) .border(Color.black) } } .navigationDestination(for: Int.self) { integer in DestinationScreen(integer: integer) } } } } struct Screen: View { var body: some View { List { ForEach(1..<50) { index in NavigationLink(value: index) { Text(index.description) .font(.largeTitle) } } } } } struct DestinationScreen: View { let integer: Int var body: some View { HStack { Text(integer.description) .font(.largeTitle) Spacer() } .padding() .navigationTitle(integer.description) .toolbar { ToolbarItem(placement: .largeTitle) { Text(integer.description) .font(.largeTitle) .border(Color.black) } } } } As shown on the gif, when navigating between pages, titles are going to overlap for a short while. Other questions: Why is it required for .navigationTitle() to exist (empty string wouldn't work!) so that the ToolbarItem .largeTitle can render at all? If none is added, this ToolbarItem simply won't appear Why isn't the large title naturally aligning to the leading side? Apple doc. doesn't mention any of this behaviour as far as I know but in general these placement should replicate known established behaviours, and .largeTitle should be leading aligned. Another issue is shown on the image below. When using both .largeTitle and .title (to simulate the same behaviour of transition between large and inline title when scrolling), both will appear at the same time. The large title will disappear as you scroll down which is fine.
Topic: UI Frameworks SubTopic: SwiftUI
Replies
3
Boosts
0
Views
547
Activity
Aug ’26
Bug: Tip comes back as pending first, then available when reloading screen
When loading screen, I scan for tips: private lazy var scanAreaTipTask = Task { @MainActor in for await shouldDisplay in scanAreaTip.statusUpdates { if shouldDisplay == .available { onSetBeacon.send(.scanArea(scanAreaTip, .show)) } else { onSetBeacon.send(.scanArea(scanAreaTip, .hide)) scanAreaTipFinished = true } } } Task is called in ViewDidAppear of the UIViewController. First time I load this view controller, the scanAreaTip.statusUpdates always comes back as pending. If I quit this view controller and open it again, the scanAreaTip.statusUpdates will come back as available. Why does it always come back as pending on the first opening where it should come back as available? This is the tip that I am using. As shown, there aren't any rules or options used. Just a plain tip that should show straight away. public struct ScanAreaTip: Tip { public init() {} public var title: Text { Text("Scan area around you") .brandFont(style: .regular(.headline)) .foregroundStyle(Color.accentColor) } }
Replies
1
Boosts
0
Views
841
Activity
Oct ’23
TipUIPopoverViewController disables all the views from presenting screen
when using Tips with UIKit, presenting TipUIPopoverViewController disables all the buttons from the presenting screen. I assume this is the expected behaviour but is there a way to disable it? I would like the button that the tip is pointing to to be still enabled. Otherwise user has to tap on it twice which is not ideal. Method checking for tip's eligibility. private extension MenuViewController { func activateTips() { Task { @MainActor [weak self] in guard let self else { return } for await shouldDisplay in createMapTip.shouldDisplayUpdates { if shouldDisplay { let controller = TipUIPopoverViewController(createMapTip, sourceItem: createMapButton) { [weak self] action in if action.id == "LearnAboutMaps" { if self?.presentedViewController is TipUIPopoverViewController { self?.dismiss(animated: true) { self?.createMapTip.invalidate(reason: .actionPerformed) self?.viewModel.handle(.didTapLearnMoreAboutMaps) } } } } present(controller, animated: true) } else if presentedViewController is TipUIPopoverViewController { dismiss(animated: true) } } } } }
Replies
2
Boosts
0
Views
1.3k
Activity
Oct ’23
ARKit, Recorded Session from RealityComposer, application error (screen frozen after the installing pipeline).
I am trying to run the application on the iPad M1 Device pinned to the Xcode debugger. The scheme has the Replay data enabled with the film prerecorded from the very same iPad M1. Errors: 2022-09-19 19:21:52.790061+0100 ARPathFinder[1373:320166] ⛔️⛔️⛔️ ERROR [MOVReaderInterface]: Error Domain=com.apple.AppleCV3DMOVKit.readererror Code=9 "CVAUserEvent: Error Domain=com.apple.videoeng.streamreaderwarning Code=0 "Cannot grab metadata. Unknown metadata stream 'CVAUserEvent'." UserInfo={NSLocalizedDescription=Cannot grab metadata. Unknown metadata stream 'CVAUserEvent'.}" UserInfo={NSLocalizedDescription=CVAUserEvent: Error Domain=com.apple.videoeng.streamreaderwarning Code=0 "Cannot grab metadata. Unknown metadata stream 'CVAUserEvent'." UserInfo={NSLocalizedDescription=Cannot grab metadata. Unknown metadata stream 'CVAUserEvent'.}} ⛔️⛔️⛔️ 2022-09-19 19:21:54.103813+0100 ARPathFinder[1373:320166] [Session] ARSession <0x104f77ec0>: did fail with error: Error Domain=com.apple.arkit.error Code=101 "Required sensor unavailable." UserInfo={NSLocalizedDescription=Required sensor unavailable., NSLocalizedFailureReason=A required sensor is not available on this device.} Any help will be appreciated, thanks.
Replies
1
Boosts
2
Views
1.4k
Activity
Dec ’22
Restoring "larger" ARWorldMap crashes the app.
Restoring "larger" ARWorldMap causes the app to crash. I am saying larger because the very same map saved earlier, with fewer anchors and feature points, does not crash and maps properly. It seems that the size of the ARWorldMap may make a difference or rather the amount of tracked anchors and feature points. I am not sure what made the exact difference but here is the ARWorldMap object and its specs: <ARWorldMap: 0x281c0cb40 center=(3.393822 0.345988 7.653722) extent=(21.671013 7.832555 20.250080) | 130 anchors, 9326 features> Tracking data: 20.4 MB The ARWorldMap is correctly fetched from the memory and passed to the configuration:  if let map = retrieveMap() {     configuration.initialWorldMap = map } The app crashes precisely before it correctly maps the surroundings.     func session(_ session: ARSession, cameraDidChangeTrackingState camera: ARCamera) {         switch session.currentFrame?.worldMappingStatus {         case .some(.mapped):             print("found") // Never executes with the "faulty" map         default:             print("problem")         }     } My situation seems to be related to this thread but not entirely. https://developer.apple.com/forums/thread/702596
Replies
0
Boosts
1
Views
882
Activity
Oct ’22
RealityKit, move(to:) methods works only without duration parameter
Using move(to:) method to update Entity's position works only if I don't use the the initialiser with duration parameter. sphere.move(to: newTransform, relativeTo: nil, duration: 0.75) // Absolutely no effect sphere.move(to: newTransform, relativeTo: nil) // Instant effect Both called from the Main thread. I don't understand what may cause this strange behaviour.
Replies
0
Boosts
0
Views
940
Activity
Oct ’22
How to improve on AR/VR learning path?
Hi everyone. I am a self-taught iOS developer for around a year and a half. It's going really great so far. But there is nothing that interests me more than AR-related/ Rendering technologies. I am learning by myself about RealityKit, SceneKit, ARKit. Surely it doesn't go fast, but it goes somehow. Don't want to mention the Metal, that one goes really slow. Is anyone able to recommend some courses/ teachings not only about these techs specifically but also about some fundamental knowledge that I could possess to make that learning a little more efficient? When working with Entities and their position, it's clear that I am missing fundamental math. I've searched for some courses about Algebra/Trigonometry but there is a ton of it, and I'm not quite sure which ones should I pick to follow the AR path. I've got all the possible notes from WWDCs about RealityKit/ARKit. But it's not enough. Metal WWDCs are simply too complicated for me at this level. I am trying to catch on to some C++ in my spare time but there is little time left for that. I would highly appreciate your help. Thanks
Replies
2
Boosts
0
Views
2.2k
Activity
Jan ’22