Hi!
I'm using PDFKits PdfView to display a PDF file and after several page changes, the background turns black, suddenly (like a big black rectangle). The error occurs in the Books App on the iPad as well and looks similiar to this issue:
https://discussions.apple.com/thread/8627073?sortBy=rank
Anyone got a solution for this?
General
RSS for tagExplore 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.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Only people using iPhone 15 and iPhone 15Pro (don't know about iPhone 15 plus or iPhone 15 pro max) are having problems with my App. All seems fine on 13, 14 and 16 as well as iPad The app is in testflight now. I cannot replicate the issue in MAC via virtual iPhone 15 , 15 plus, pro, or promax. What I see happening - it looks like users are seeing labels disappear, sometimes buttons are disappearing on the 15 pro and 15.
I have an ingredient selection page where you can select the ingredients that you have. These are outlined and grouped to make choosing ingredients intuitive. I have a profile selector where you can choose by flavor, strength, body or mood. At the bottom I have three buttons , button one lets you choose if drinks are sorted or strictly matched. The last button allows the user to see the drinks they can make based on ingredients they have.This is done by matching the ingredients with a locally placed drinks list which contains a drink id, drink name, ingredients and profile information. Clicking the last button opens a flatlist.
Users on iPhone 15 and iPhone 15Pro iOS 18 sometimes experience the three buttons at the bottom being gone altogether. then returning. After clicking the Drinks Available button the button label should change to hide available drinks, but sometimes that label disappears. The drinks flat list has space for many drinks but the labels for those drinks are not present until halfway down the list where one drink shows up.
No other device behaves this way. It might be more common when there are large number of ingredients selected ....e.g., if about 50% of 211 ingredients selected it might be more likely to happen. This needs to be tested to verify,
Hello Apple Developer Community,
I'm experiencing a persistent issue with my React Native/Expo app that I've been trying to resolve for weeks. I'm hoping someone here has encountered and solved this problem.
The Problem:
• My app works perfectly in development (Expo Go, local builds, simulators)
• When built for production and installed via TestFlight, it shows only a white screen
• The app launches successfully (no crashes) but never renders any UI
• This happens consistently across multiple builds and attempts
Technical Details:
• Framework: React Native 0.79.5 with Expo SDK 53
• Backend: Supabase
• Navigation: React Navigation
What I've Tried:
✅ Created missing .env file with environment variables
✅ Installed missing peer dependencies (expo-font)
✅ Ran npx expo-doctor - all checks pass
✅ Added error boundaries and loading screens
✅ Incremented build numbers and rebuilt multiple times
✅ Verified Supabase credentials are correct
✅ Checked native iOS logs - app launches successfully, no crashes
Key Observations:
Works in Expo Go ✅
Works in development builds ✅
Fails in production builds ❌
No JavaScript errors visible in system logs
App process runs stable (no crashes)
Questions:
• Has anyone encountered this specific issue with React Native/Expo production builds?
• Are there known issues with Metro bundler in production builds?
• Could this be related to JavaScript bundle loading in production?
• Are there specific EAS Build configurations that might cause this?
Repository: https://github.com/bigmoud/voluntr (if anyone wants to examine the code)
Topic:
UI Frameworks
SubTopic:
General
I have a PDF which contains geocoordinates. I'm extracting out that image with the following code (this is for an iOS application):
guard let cgDocument = CGPDFDocument(overlay.pdfUrl as CFURL) else { return }
guard let cgPage = cgDocument.page(at: 1) else { return }
var boundingRect = self.rect(for: overlay.boundingMapRect)
let pdfPageRect = cgPage.getBoxRect(.mediaBox)
let renderer = UIGraphicsImageRenderer(size: pdfPageRect.size)
var img = renderer.image { ctx in
UIColor.white.set()
ctx.fill(pdfPageRect)
ctx.cgContext.translateBy(x: 0.0, y: pdfPageRect.size.height)
ctx.cgContext.scaleBy(x: 1.0, y: -1.0)
ctx.cgContext.drawPDFPage(cgPage)
}
Once I have that image, I then need to adjust it to fit the specific coordinate corners. For that, I'm doing the following using a perspectiveTransform:
let ciImg = CIImage(image: img)!
let perspectiveTransformFilter = CIFilter.perspectiveTransform()
perspectiveTransformFilter.inputImage = ciImg
perspectiveTransformFilter.topRight = cartesianForPoint(point: ur, extent: boundingRect)
perspectiveTransformFilter.topLeft = cartesianForPoint(point: ul, extent: boundingRect)
perspectiveTransformFilter.bottomRight = cartesianForPoint(point: lr, extent: boundingRect)
perspectiveTransformFilter.bottomLeft = cartesianForPoint(point: ll, extent: boundingRect)
let txImg = perspectiveTransformFilter.outputImage!
img = UIImage(ciImage: txImg)
The original image is 792 x 612 (a landscape PDF) but the boundingRect covering the coordinates is 25625 x 20030. Obviously when I try to draw the image into that bounding box the app runs out of memory (25625 x 20030 x 4 is around 2GB of memory).
What I'm struggling with is - how do I correctly scale this image to fit into the bounding box even though the bounding box is, oh, 10x the resolution of the actual device? There's some key CoreGraphics thing I'm sure I'm missing here.
i am try to build an app that show beautiful result represent the user activity.
but i found that if i write metal code in the View of some DeviceActivityReportScene, the metal code wasn't working.
(the same metal code works in other taget)
i can switch to canvas, but the perform is bad compare with metal.
can use metal? or it is just not working?
My app controls the cursor movement in a text view on iPhone and iPads.
On screen touch, the IOS cursor position is out of sync with the app cursor position.
Is there a way to find out, on screen touch, where the ios cursor positition is and update the app cursor to the ios cursor position?
When they are out of sync, the user has to move the cursor to the startIndex and navigate from there. Frustating!
I have looked at many programming books, forums, and internet search with nothing to no avail.
Any help will be greatly appreciated. The app names are SummaGramPhonex and SummaGramIPAD11 and SummaGramIPAD13.
Thanks. Charlie
3Sep25
The design of VNDocumentCameraViewController has been updated with iOS 26. Now the 'done' button that appears when at least one page has been scanned is by default in blue (liquid glass).
Changing the navBar or the barButtonItems tintColor does not work.
So, how does one change the color of this button to match the app's color?
Thank you very much!
I’m not seeing Liquid Glass on any standard components. A month ago around July 17th I ran our app and saw Liquid Glass on our tab view and various standard components. Those components have not been changed and yet I’m no longer seeing Liquid Glass in our app at all.
Components that were previously liquid glass but now are not include TabView and back navigation buttons.
I set the UIDesignRequiresCompatibility key explicitly to false but no luck. I was seeing this in Beta 7 and Beta 8 on a real device and on a sim.
I’m working with CPListTemplate in CarPlay and have run into two issues:
Item limit: The documentation states that maximumItemCount is 500. In practice, when providing a list of ~2–4k items, only the first 500 are displayed. However, Apple Music on CarPlay seems to handle larger lists without this limitation. Is there an API-level approach or recommended pattern to support lists beyond this cap?
Image memory usage: Cells don’t appear to load lazily. Even with small images, the first 500 items load all their artwork into memory immediately, resulting in ~400–700 MB usage and high CPU loads. This seems excessive for CarPlay environments. Is there a best practice for deferring or managing image loading within CPListTemplate?
Any official guidance or known workarounds for these two issues would be very helpful.
Description
We observed multiple UI issues in VisionKit (VNDocumentCameraViewController) on iPad devices running iPadOS 26 (from Public Beta 4 onwards):
Tab bar button titles are not properly visible due to color/contrast issues.
An extra back button appears in the navigation bar when editing a captured image in landscape mode.
These issues seem to be iPadOS 26 bugs, as Apple does not provide public APIs to customize or override VNDocumentCameraViewController. VisionKit relies on private ICDocCam* classes, which are not accessible for modification.
Steps to Reproduce
Open the app on an iPad running iPadOS 26 (Public Beta 4 or later).
Switch the device to landscape mode.
Launch document scanning using VNDocumentCameraViewController.
Capture a document and tap Keep Scan.
Go to the edit captured image screen.
Observed Behavior:
Tab bar button titles are not clearly visible (color/contrast issue).
An extra back button is displayed in the navigation bar.
PLATFORM AND VERSION
iOS
Development environment: Xcode 16.4, macOS 15.6
Run-time configuration: iOS 18.6
DESCRIPTION OF PROBLEM
Hi,
We recently noticed some issues when running our existing app, even after applying updates, on iOS 18.6. The problem occurs both on the Xcode simulator and on clients’ mobile devices running iOS 18.5 or later. However, devices running versions below 18.5, such as iOS 18.4 (including iPads), do not experience this issue.
The issue we are experiencing is that when we touch certain elements, they do not respond unless we tap slightly higher than the intended point. Please see the video in the link below. I believe others are also experiencing similar touch-related issues, though not identical to ours.
On iOS 18.4: Works as expected.
On iOS 18.6: The range bar cannot be moved unless we tap slightly above it, and once the map is displayed, the toggle button becomes non-functional.
This behaviour is not present in any earlier iOS version.
I suspect something may have changed in the OS that is causing this issue, possibly related to plugins, or perhaps something in Xcode that needs to be updated. We would greatly appreciate your guidance in resolving this matter.
STEPS TO REPRODUCE
Please see the following videos
18.4, performing as expected.
https://screenrec.com/share/ASczNx0MRh
18.6, with issues
https://screenrec.com/share/MR4VpyIBks
18.6 with the issue
Topic:
UI Frameworks
SubTopic:
General
What is the recommended way to obtain the concentric corner radius for views within grouped UICollectionView cells?
In the most basic example, a UICollectionView with one section and one cell, we observe the cell takes almost the shape of a capsule, but it is indeed not a capsule.
What is the way to obtain the radius of the grouped area from within the cell or its registration? I would like to layer elements on top that are concentric to the cell's clip shape.
I've tried using custom views with .concentric UICornerConfigurations, setting .cornerConfiguration on the cell and on a custom backgroundView and I've even tried obtaining the .effectiveRadius of the cell after layout (returns 0.0). As of Xcode 26.0 Beta 7, nothing works.
This seems like a huge omission; what am I missing here?
Note: in this post I discuss sceneDidEnterBackground/WillResignActive but I assume any guidance provided would also apply to the now deprecated applicationDidEnterBackground/applicationWillResignActive and SwiftUI's ScenePhase (please call out if that's not the case!).
A common pattern for applications with sensitive user data (banking, health, private journals, etc.) is to obsurce content in the app switcher. Different apps appear to implement this in two common patterns. Either immediately upon becoming inactive (near immediately upon moving to task switcher) or only upon becoming backgrounded (not until you've gone to another app or back to the home screen).
I’d like to make sure we’re aligned with Apple’s intended best practices and am wondering if an anti-pattern of using sceneWillResignActive(_:) may be becoming popularized and has minor user experience inconviences (jarring transitions to the App Switcher/Control Center/Notification Center and when the system presents alerts.)
Our applications current implementation uses sceneDidEnterBackground(_:) to obscure sensitive elements instead of sceneWillResignActive(_:), based on the recomendations from tech note QA1838 and the documentation in sceneDidEnterBackground(_:)
... Shortly after this method [sceneWillEnterBackground] returns, UIKit takes a snapshot of your scene’s interface for display in the app switcher. Make sure your interface doesn’t contain sensitive user information.
Both QA1838 and the sceneDidEnterBackground documentation seem to indicate backgrounding is the appropriate event to respond to for this pattern but I am wondering if "to display in the app switcher" may be causing confusion since your app can also display in the app switcher upon becoming inactive and if some guidance could be added to sceneWillResignActive that it is not nesscary to obsure content during this state (if that is true).
In our testing, apps seems to continue to play any in-progress animations when entering the app switcher from the application (inactive state), suggesting no snapshot capture. We also discovered that it appears sceneWillResignActive not always be called (it usually is) but occasionally you can swipe into the app switcher without it being called but that sceneDidEnterBackground is triggered more consistently.
It appears the Wallet app behaves as I'd expect with sceneDidEnterBackground on card details screens as well (ejecting you to the card preview if you switch apps) but will keep you on the card details screen upon becoming inactive.
Questions:
Is sceneDidEnterBackground(_:) still Apple’s recommended place to obscure sensitive content, or should apps handle this earlier (e.g. on inactive)?
Would it actually be recommended against using sceneWillResignActive active given it seems to not be gauranteed to be called?
Ask:
Provide an updated version of QA1838 to solidfy the extrapolation of applicationDidEnterBackground -> sceneDidEnterBackground
Consider adding explicit guidance to sceneWillResignActive documentation
Is it possible at all to programmatically change visible rect / map region programmatically?
Otherwise, how can we make sure user sees anythng just after starting the app, if nearest POIs are far away?
I am developing an App in iPadOS26 beta. I try to switch "Multitasking & Gestures" setting to “Full Screen Apps“ in the code of App. Is there any public API available to implement it.
By the way, my App is a Cordova App.
Thank you
Topic:
UI Frameworks
SubTopic:
General
I have an Apple Watch Series 6 (Model: M00H3LL/A) that was working perfectly before I updated it to watchOS 26.0 beta on 21st August 2024. The update process completed smoothly while the watch was on the charger, but immediately after the update the display became extremely dim.
It’s not completely black, but so faint that it’s very difficult to see. I’ve already tried setting the brightness to maximum and also enabled maximum brightness under Accessibility settings, but the issue remains. I also tried force restarting the watch (holding the Digital Crown and side button together), but that did not resolve the issue.
I know this is not a hardware issue, since the problem appeared immediately after the update, and at times the display briefly returns to normal brightness for just a few milliseconds (like a flicker).
My current watchOS version is 26.0 (23R5350a).Could you please advise on how I can fix this, or confirm if this is a known issue with the beta version?
Thank you.
Topic:
UI Frameworks
SubTopic:
General
In the current beta of iPadOS 26.0 (23A5297m), the camera does not function properly when the following conditions are met:
The device is set to Windowed Apps mode in the Settings app.
Multiple application windows are present on one screen.
Using AVCaptureVideoPreviewLayer.
On the other hand, UIImagePicker works properly.
Is this a specification of iPadOS 26 that cannot be avoided? Or is there an official solution or workaround available?
Normally, the camera feed should appear within the square frame of the lower window in the attached image, but it does not.
Topic:
UI Frameworks
SubTopic:
General
In the current beta of iPadOS 26.0 (23A5297m), the camera does not function properly when the following conditions are met:
The device is set to Windowed Apps mode in the Settings app.
Multiple application windows are present on one screen.
Using AVCaptureVideoPreviewLayer.
On the other hand, UIImagePicker works properly.
Is this a specification of iPadOS 26 that cannot be avoided? Or is there an official solution or workaround available?
Topic:
UI Frameworks
SubTopic:
General
I’ve been testing out PaperKit from beta 1 up until 3, then took a break and on my return at beta 7 I find that the .drawing property of the PaperMarkup data model has been removed, i.e. a PKDrawing can no longer be added / modified on PaperKit. Also, the shape recognition feature seems to have been removed.
I see this as a tremendous drawback. I filed feedback already: FB19893338
Please bring it back.
This is probably abusing the system more than it should be but maybe it is somehow possible. I have:
An objective-C based storyboard iPad OS app. I'm beginning to adopt SwiftUI.
I have a hosting controller with a content view that has a lazygrid of cards, which have an NSManagedObject for data. On tapping a card, a detail view opens, if in multi-tasking, a new window, if not, pushing the navigation controller (this detail view still exists in UIKit/ObjC, and is handled by sending a notification with the ObjectID, which then triggers a storyboard segue to the detail.)
I have zoom transitions on all my things. They work great in Obj.C, especially now with the bar button source.
On my iPhone target, I still have an old tableview, and I'm able to zoom properly - if someone changes the detail view's managed object (through a history menu), the zoom context looks up where the tableview is, and scrolls to it while popping.
I'd like to somehow do this on the lazygrid - first) to just have an individual card be the zoom source, it should be able to know what the source view is to say in the prepareForSegue method just to zoom at all. and second) if the detail has changed the current ObjectID (which gets passed around as a notification), to somehow scroll the lazygrid to the right object before popping.
I've looked at https://developer.apple.com/tutorials/SwiftUI/interfacing-with-uikit but this seems like swiftUI is the host. I have it the other way around, uikit hosting swiftUI pushing uikit.
TIA for any pointers