We have a UITabBarController in our iPhone App which has 5 tabs with UITableViewControllers (constructed from the storyboard). Before iOS18 beta 1 (and 2) this was working fine without any problems (objective-C).
Since iOS18 beta 1 (and beta 2 still has this problem) a strange render glitch occurs when activating a tab from the tab bar at the bottom.
As soon as a tab is activated (by tapping on the icon at the bottom) the tab with the UITableViewController becomes visible and draws its content starting at the very top of the screen (pos 0,0) right through/over the Navigation bar which at that point is showing a title and a rightBarButtonItem.
The tab with the UITableViewController seems not aware there is a navigation bar visible.
Then after ~0.3 seconds the tab with the UITableViewContoller is automatically rendered again or moved down and now its content starts below the UINavigationBar as expected, this is 100% reproducible and occurs on every activation of a tab in the UITabBarController.
Is anyone else also getting this behavior in their App since iOS18?
I'm aware that UITabBarController is being renewed but I can't find any information on why this behavior might occur. I was hoping beta 2 would solve the problem but it doesn't.
Constructing the UITabBarController in the code with the new UITab objects (instead of constructing them from the storyboard) also shows this problem.
UIKit
RSS for tagConstruct and manage graphical, event-driven user interfaces for iOS or tvOS apps using UIKit.
Post
Replies
Boosts
Views
Activity
While using the native AVfoundation for recording videos I am able to see black frames/ screen in the beginning and end of the video for 2 millisecond at the end and beginning .
func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
guard isRecording, let assetWriter = assetWriter else { return }
let timestamp = CMSampleBufferGetPresentationTimeStamp(sampleBuffer)
if recordingStartTime == nil {
recordingStartTime = timestamp
let adjustedStartTime = CMTimeAdd(timestamp, CMTimeMake(value: -2, timescale: 1000)) // Adjust start time slightly earlier
assetWriter.startSession(atSourceTime: adjustedStartTime)
print("Status: \(assetWriter.status.rawValue)")
}
if output == videoOutput {
if videoInput?.isReadyForMoreMediaData == true {
videoInput?.append(sampleBuffer)
}
} else if output == audioOutput {
if audioInput?.isReadyForMoreMediaData == true {
audioInput?.append(sampleBuffer)
}
}
if let startTime = recordingStartTime, CMTimeSubtract(timestamp, startTime) >= recordingInterval {
isRecording = false
let adjustedEndTime = CMTimeAdd(timestamp, CMTimeMake(value: 2, timescale: 1000)) // Adjust end time slightly later
assetWriter.finishWriting { [weak self] in
print("Finished writing segment")
self?.startRecording() // Start a new recording segment
}
recordingStartTime = nil
}
}
At a WWDC24 consultation with the keyboards and input team, I was referred to the UITextInputContext class for detecting hardware keyboard status. However, it's not obvious how this class is intended to be used.
I would like to receive notifications when the UITextInputContext state changes, however, I see no way to accomplish this. I've tried using KVO to observe state changes of the current property of UITextInputContext.class or the hardwareKeyboardInputExpected property of UITextInputContext.current, but receive no change notifications when a USB hardware keyboard is attached/detached, and hit an assertion when trying to stop observing, indicating that the observer is not registered. So I don't think KVO works.
I am interested in knowing whether a hardware keyboard is attached when the virtual onscreen keyboard is hidden or shown (which occurs when the hardware keyboard is attached/detached), so that I may adjust the state of my inputAccessoryView accordingly (it should be hidden when a hardware keyboard is attached).
I've had some success checking the state of UITextInputContext.current.hardwareKeyboardInputExpected during keyboard willHide/willShow notifications (or in a block executed via dispatch_async()), however, it seems that the property value does not change until the first key press after attaching a hardware keyboard, or after the first virtual onscreen key press after detaching a hardware keyboard. The latter is problematic because there are no more keyboard hide/show notifications in which to perform the needed update to my inputAccessoryView UI after the UITextInputContext state change occurs following hardware keyboard disconnection.
Perhaps it's meant that I should monitor key press events and check the status there instead?
I have created an app for iOS using React Native. I've gotten the app to a point where it works on the iPhone simulator via the Expo App. It even works when creating a build of the app to distribute using TestFlight. Now, I want to add Google Ads into the app. However, I've learned that Google Ads won't work via an Expo build. Instead one has to create a development build to test the ads in the app and see how they look.
I've also finally been able to compile a successful development build using eas (expo application services). When I install the app on the simulator and try to open it however, the app crashes almost immediately and I don't know why. I have tried deciphering the symbolicated crash report, but I have not been able to figure out what could be causing the error. It looks like it has something to do with the user interface.
Below is the thread where the app crashes:
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x11324a14a __pthread_kill + 10
1 libsystem_pthread.dylib 0x1132abebd pthread_kill + 262
2 libsystem_c.dylib 0x7ff80016dd1c abort + 133
3 libc++abi.dylib 0x7ff8002c6d12 abort_message + 241
4 libc++abi.dylib 0x7ff8002b951a demangling_terminate_handler() + 266
5 libobjc.A.dylib 0x7ff800061fba _objc_terminate() + 96
6 libc++abi.dylib 0x7ff8002c616b std::__terminate(void (*)()) + 6
7 libc++abi.dylib 0x7ff8002c6126 std::terminate() + 54
8 libdispatch.dylib 0x7ff8001796ec _dispatch_client_callout + 28
9 libdispatch.dylib 0x7ff80017d1e2 _dispatch_block_invoke_direct + 508
10 FrontBoardServices 0x7ff807a8b3a7 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 30
11 FrontBoardServices 0x7ff807a8b281 -[FBSMainRunLoopSerialQueue _targetQueue_performNextIfPossible] + 188
12 FrontBoardServices 0x7ff807a8b3cf -[FBSMainRunLoopSerialQueue _performNextFromRunLoopSource] + 19
13 CoreFoundation 0x7ff800429ff3 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
14 CoreFoundation 0x7ff800429f35 __CFRunLoopDoSource0 + 157
15 CoreFoundation 0x7ff800429732 __CFRunLoopDoSources0 + 215
16 CoreFoundation 0x7ff800423e67 __CFRunLoopRun + 919
17 CoreFoundation 0x7ff8004236ed CFRunLoopRunSpecific + 557
18 GraphicsServices 0x7ff8103ba08f GSEventRunModal + 137
19 UIKitCore 0x7ff805cdf6ee -[UIApplication _run] + 972
20 UIKitCore 0x7ff805ce416e UIApplicationMain + 123
21 LeftOff 0x10f870380 main + 96
22 dyld_sim 0x112d3a3e0 start_sim + 10
23 dyld 0x113d57366 start + 1942
I have been trying to solve this for some days now and could really use some help. I have tried changing versions of dependencies in my app too, with a focus on those that manage the UI. For example, I have changed packages such as react-native-ranimated, react-navigation/stack, react-native-gesture-handler, and react-native-screens to name a few. Nothing has worked so far. Please help.
In the past, it seemed that if you used the app switcher and killed the app, that state restoration data would not persist, and starting the app again would not load any stored state data. But now (at lest in iOS 17) that is no longer the case.
There are situations where the old state might cause issues, which we obviously need to fix, but users should be able to clear the state data.
I am not using sessions and am using the older methods - application:shouldSaveApplicationState: and application:shouldRestoreApplicationState:.
My question is, how can I tell my users to reset/clear state restoration data if needed?
macOS 15 introduces SwiftUI.WindowLevel for macOS which allows setting the level of windows.
Is there an equivalent new API for UIKit.UIWindowScene on Mac Catalyst? I haven't been able to find it.
On iOS18 beta1 & beta2 builds, calling
collectionView.cancelInteractiveTransition()
after a call to
startInteractiveTransition(to:completion:)
seems to remove the intermediate transition layout object from the collection view, but doesn't reinstalls the original layout, which results in the collection view disappearing completely.
This was not the case in previous iOS versions, so maybe a beta bug?
Possibly related, Xcode logs the following error in the console in the exact moment when the collectionView disappears:
“Requesting visual style in an implementation that has disabled it, returning nil. Behavior of caller is undefined.”
I filled a bug report, together with sample project, just in case FB14057335
Thanks!
Currently, we are implementing an undo/redo feature in UITextView.
However, we cannot use the built-in UndoManager in UITextView because we have multiple UITextView instances inside a UICollectionView.
Since UICollectionView recycles UITextView instances, the same UITextView might be reused in different rows, making the built-in UndoManager unreliable.
The shouldChangeTextIn method in UITextViewDelegate is key to implementing undo/redo functionality properly. Here is an example of our implementation:
extension ChecklistCell: UITextViewDelegate {
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
// Get the current text
let s = textView.text ?? ""
// Get the starting position of the change
let start = range.location
// Get the number of characters that will be replaced
let count = range.length
// Get the number of characters that will be added
let after = text.count
print(">>>> The current text = \"\(s)\"")
print(">>>> The starting position of the change = \(start)")
print(">>>> The number of characters that will be replaced = \(count)")
print(">>>> The number of characters that will be added = \(after)")
print(">>>>")
if let delegate = delegate, let checklistId = checklistId, let index = delegate.checklistIdToIndex(checklistId) {
delegate.attachTextAction(s: s, start: start, count: count, after: after, index: index)
}
return true
}
}
Working scene behind the UITextViewDelegate
However, this implementation does not work well with non-English input using an IME. When using an IME, there is an intermediate input before the final input is produced. For example, typing "wo" (intermediate input) produces "我" (final input). Currently, UITextViewDelegate captures both "wo" and "我".
UITextViewDelegate captures both "wo" and "我"
Is there a way to ignore the intermediate input from IME and only consider the final input?
In Android, we use the beforeTextChanged method in TextWatcher to seamlessly ignore the intermediate input from IME and only consider the final input. You can see this in action in this
Android captures only "我"
Is there an equivalent way in iOS to ignore the intermediate input from IME and only take the final input into consideration?
Hi,
I'm trying to investigate if there is any way to have an app that displays an automaker app when the Carplay environment has the automaker protocol string, and displays a Carplay App (Driving Task) when there isn't the automaker protocol string.
I was able to start developing an automaker app, but with an iOS16.0 deprecated method (with UIScreen Notifications), I'm not able to do it via the scene delegate... There is any kind of documentation of how to do it?
I think the clue may be in the scene delegate with the property Preferred Default Scene Session Role, where I think the automaker app is a Window Application Session Role, but the scene delegate is not triggered when I open the Carplay App in the simulator.
So am I missing something? Is there a way to do it or have I to publish two apps in order to use the two kind of carplay apps... ?
Thank you very much.
Hello,
Our application communicates with our hardware to control a motor.
For security reasons, if an alert, popup or window appears, we must stop the motor immediately.
I haven't found how to detect (event ?, notification ?, delegate ?) the window if a user swipe their finger to the (bottom right) corner of the screen to display the «Quick note».
The bottom left corner (screenshot) works fine, the motor is stopped.
Is there a way to capture an event or notification when the «Quick Note» window is displayed or cleared ?
Thanks,
The new ios 18 UI of photos applications is the worst and so confusing. I had beta so i showed to many friends they hated it as well.
Testing on iPhone 12 mini, I have encountered a weird situation. I am try to take snapshot of my view, which works fine but the memory is never released after the snapshot is taken.
func screenshot(view: UIView, scale:Double) -> URL? {
guard let containerView = view.superview, let containerSuperview = containerView.superview else { return nil }
let rendererFormat = UIGraphicsImageRendererFormat()
rendererFormat.scale = scale
var renderer = UIGraphicsImageRenderer(bounds: containerView.frame, format: rendererFormat)
let image = autoreleasepool {
return renderer.image { context in
containerSuperview.drawHierarchy(in: containerSuperview.layer.frame, afterScreenUpdates: true) //memory hog starts from here
}
}
guard let data = image.heicData() else {
return nil
}
//more code to save data to file URL and return it
}
initially it appears to work normally but as soon as I change the scale:
rendererFormat.scale = 10 I can see a spike in memory but the problem is then the memory is never released even after the image is saved. so initially, the app uses: 35MB memory -> when processing the memory usage jumps to expected 250MB to 300MB to process large image -> after processing the memory goes down to around 90MB to 120MB but it never really returns to it's original 35MB state.
Is this a bug or this is expected?
If this is expected behaviour then is there any low level API to free the memory after it's job is done.
Hello,
I try to do the same as the UIListContentConfiguration. Because I want to have a UITableViewCell with an image at beginning, then 2 Labels and an image at the end (accessoryView/Type should also be usable). I also want to have the dynamic behavior of the two labels, that if one or both of them exceeds a limit, that they are put under each under. But I cannot use the UIListContentConfiguration.valueCell, because of the extra image at the end.
So I have tried to make a TextWrapper as an UIView, which contains only the two UILabels and the TextWrapper should take care of the dynamic height of the UILabels and put them side to side or under each other.
But here in this post Im only concentrating on the issue with the labels under each other, because I have managed it to get it working, that I have two sets of Constraints and switch the activeStatus of the constraints, depending on the size of the two labels. But currently only the thing with the labels under each under makes problems.
Following approaches I have tried for the TextWrapper:
Using only constraints in this Wrapper (results in ambiguous constraints)
Used combinations of constraints + intrinsicContentSize (failed because it seems that invalidateIntrinsicContentSize doesn't work for me)
Approach with constraints only
Following code snippet results in ambiguous vertical position and height. Because I have 3 constraints (those with the defaultHigh priorities).
class TextWrapper: UIView {
let textLabel = UILabel()
let detailLabel = UILabel()
init() {
super.init(frame: .zero)
self.addSubview(self.textLabel)
self.addSubview(self.detailLabel)
self.textLabel.numberOfLines = 0
self.detailLabel.numberOfLines = 0
self.directionalLayoutMargins = .init(top: 8, leading: 16, bottom: 8, trailing: 8)
self.translatesAutoresizingMaskIntoConstraints = false
self.textLabel.translatesAutoresizingMaskIntoConstraints = false
self.detailLabel.translatesAutoresizingMaskIntoConstraints = false
// Content Size
self.textLabel.setContentCompressionResistancePriority(.required, for: .vertical)
self.detailLabel.setContentCompressionResistancePriority(.required, for: .vertical)
// Constraints
self.textLabel.leadingAnchor.constraint(equalTo: self.layoutMarginsGuide.leadingAnchor).isActive = true
self.textLabel.topAnchor.constraint(equalTo: self.layoutMarginsGuide.topAnchor).constraint(with: .defaultHigh)
self.textLabel.widthAnchor.constraint(lessThanOrEqualTo: self.layoutMarginsGuide.widthAnchor).isActive = true
self.detailLabel.leadingAnchor.constraint(equalTo: self.layoutMarginsGuide.leadingAnchor).isActive = true
self.detailLabel.topAnchor.constraint(equalTo: self.textLabel.bottomAnchor, constant: 2).constraint(with: .defaultHigh)
self.detailLabel.bottomAnchor.constraint(equalTo: self.layoutMarginsGuide.bottomAnchor).constraint(with: .defaultHigh)
self.detailLabel.widthAnchor.constraint(lessThanOrEqualTo: self.layoutMarginsGuide.widthAnchor).isActive = true
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
Approach with intrinsicContentSize
Pretty similar to the above, with only difference that I invalidate the intrinsicContentSize in the layoutSubviews, because at the first call of the intrinsicContentSize the width of the View is zero. I also tried different things like setNeedsLayout with layoutIfNeeded but nothing really works. After I invalidate the intrinsicContentSize in the layoutSubviews the intrinsicContentSize is called with the correct width of the View and calculates the correct height, but the TableView doesn't update the height accordingly.
class TextWrapper: UIView {
let textLabel = UILabel()
let detailLabel = UILabel()
init() {
super.init(frame: .zero)
self.addSubview(self.textLabel)
self.addSubview(self.detailLabel)
self.textLabel.numberOfLines = 0
self.detailLabel.numberOfLines = 0
self.directionalLayoutMargins = .init(top: 8, leading: 16, bottom: 8, trailing: 8)
self.translatesAutoresizingMaskIntoConstraints = false
self.textLabel.translatesAutoresizingMaskIntoConstraints = false
self.detailLabel.translatesAutoresizingMaskIntoConstraints = false
// Content Size
self.textLabel.setContentCompressionResistancePriority(.required, for: .vertical)
self.detailLabel.setContentCompressionResistancePriority(.required, for: .vertical)
// Constraints
self.textLabel.leadingAnchor.constraint(equalTo: self.layoutMarginsGuide.leadingAnchor).isActive = true
self.textLabel.topAnchor.constraint(equalTo: self.layoutMarginsGuide.topAnchor).constraint(with: .defaultHigh)
self.textLabel.widthAnchor.constraint(lessThanOrEqualTo: self.layoutMarginsGuide.widthAnchor).isActive = true
self.detailLabel.leadingAnchor.constraint(equalTo: self.layoutMarginsGuide.leadingAnchor).isActive = true
self.detailLabel.topAnchor.constraint(equalTo: self.textLabel.bottomAnchor, constant: 2).constraint(with: .defaultHigh)
self.detailLabel.widthAnchor.constraint(lessThanOrEqualTo: self.layoutMarginsGuide.widthAnchor).isActive = true
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override var intrinsicContentSize: CGSize {
let maxLabelWidth = self.bounds.width
guard maxLabelWidth > 0 else {
// The first time it has a width of 0, so we are giving a default height in this case, to dont produce a error in TableView
return CGSize(width: UIView.noIntrinsicMetric, height: 44)
}
let textLabelSize = self.textLabel.sizeThatFits(CGSize(width: maxLabelWidth, height: .greatestFiniteMagnitude))
let detailLabelSize = self.detailLabel.sizeThatFits(CGSize(width: maxLabelWidth, height: .greatestFiniteMagnitude))
let totalHeight = textLabelSize.height + detailLabelSize.height + 16
return CGSize(width: UIView.noIntrinsicMetric, height: totalHeight)
}
override func layoutSubviews() {
super.layoutSubviews()
self.invalidateIntrinsicContentSize()
}
I also tried to use the intrinsicContentSize with only layoutSubviews, but this haven't worked also.
Does anybody have ran into such issues? And know how to fix that?
I'm running into a change in behavior with the title bar when building our Catalyst app under Xcode 16 versus what we are seeing with the same code built under Xcode 15.
The title bar is hidden, as it should be in the Xcode 15 build. However, when building the same project under Xcode 16, the title bar is shown with the center contents of the navigation bar in the right pane being duplicated in the title bar (see screenshot at the end), which is undesirable.
The screenshots for both builds were taken in macOS Sequoia Beta Seed 1. The Catalyst Interface setting is configured to "Optimize for Mac" in the project file.
The scene's titlebar.titleVisibility property is set to .hidden, titlebar.toolbar is set to nil. UINavigationBar's appearance is configured with a preferredBehaviorStyle of .pad when running under Catalyst 16 or later.
Is this a bug or am I missing a flag or something that was introduced to Catalyst/UIKit that I've overlooked? I've also filed a feedback for this issue: FB14000006.
Thank you for your time.
PLATFORM AND VERSION:
iOS
Development environment:
Xcode 15.2
macOS 13.6.3
iOS 17.2
DESCRIPTION OF PROBLEM
Using a UICollectionView with compositional layout, once the view is created, programmatically scroll to a row using the scrollToItem method.
For this report I created a simple dataSource with 400 rows and 1 section.
Scrolling to row 200 in viewDidLoad or viewWillAppear after calling collectionView.layoutIfNeeded().
The compositional layout's orthogonalScrollingBehavior is set to .groupPagingCentered
The collectionView behaves as expected and shows row 200.
Issue
The issue is that when swiping too quickly to go to row 199 or prior the entire collectionView is reset to row 0. This does not happen when swiping to go on row 201 or above.
STEPS TO REPRODUCE
Run the app on iPhone.
Swipe right quickly (to go to row prior to 200)
Expected result: row 199 or 198 is shown
Actual result: collectionView is reset to row 0
We have an app with a UITabBarController.
On visionOS it is automatically shown as an ornament (as expected).
However, we would like to temporarily hide it in some situations.
Is it possible to hide/show the ornament representation of the UITabBarController's tab bar?
how do I stop screen recorder/capture on iOS 14. have any native API for this?. have privacy/security concern for my app so kindly help me.
Thanks
Hello we have created a function that is expanding copy module to support html format. Everything inside that function works fine but on 17.4+ IOS version copying the html element strike-through tag is not working (other HTML elements are working fine) . Looking the logs seems like are getting stripped.
Here is the code:
void copyToClipboard(NSString *htmlContent) {
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
[pasteboard setValue:htmlContent forPasteboardType:@"public.html"];
}
Does anyone know fix for this or when this will be fixed or will it be fixed in next update?
Hey,bros:
I meet this crash,but I can't find any useful infos to fix this crash.And this crash only happens on iOS17.
Here are the crash infos:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Layout requested for visible navigation bar, <UINavigationBar: 0x106128820; frame = (0 0; 430 44); opaque = NO; autoresize = W; tintColor = UIExtendedGrayColorSpace.
Here are the stacks:
Thread 0 name: com.apple.main-thread
CoreFoundation ___exceptionPreprocess (in CoreFoundation)
libobjc.A.dylib _objc_exception_throw (in libobjc.A.dylib)
Foundation -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] (in Foundation)
UIKitCore -[UINavigationBar layoutSubviews] (in UIKitCore)
UIKitCore -[UIView(CALayerDelegate) layoutSublayersOfLayer:] (in UIKitCore)
longbridge-ios-app -[UIView(Thread) ex_layoutSublayersOfLayer:] (in longbridge-ios-app:UIView+Thread.m:36)
UIKitCore -[UINavigationBar layoutSublayersOfLayer:] (in UIKitCore)
QuartzCore CA::Layer::layout_if_needed(CA::Transaction*) (in QuartzCore)
UIKitCore -[UIView(Hierarchy) layoutBelowIfNeeded] (in UIKitCore)
UIKitCore -[UINavigationController _positionNavigationBarHidden:edge:initialOffset:] (in UIKitCore)
UIKitCore -[UINavigationController _positionNavigationBarHidden:edge:] (in UIKitCore)
UIKitCore -[UINavigationController _updateBarsForCurrentInterfaceOrientationAndForceBarLayout:] (in UIKitCore)
UIKitCore -[UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:] (in UIKitCore)
UIKitCore -[UINavigationController viewDidMoveToWindow:shouldAppearOrDisappear:] (in UIKitCore)
UIKitCore -[UIView(Internal) _didMoveFromWindow:toWindow:] (in UIKitCore)
UIKitCore ___45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke (in UIKitCore)
CoreAutoLayout -[NSISEngine withBehaviors:performModifications:] (in CoreAutoLayout)
UIKitCore -[UIView _postMovedFromSuperview:] (in UIKitCore)
UIKitCore -[UIView(Internal) _addSubview:positioned:relativeTo:] (in UIKitCore)
UIKitCore -[UITransitionView transition:fromView:toView:removeFromView:] (in UIKitCore)
UIKitCore -[UIViewControllerBuiltinTransitionViewAnimator animateTransition:] (in UIKitCore)
UIKitCore ____UIViewControllerTransitioningRunCustomTransition_block_invoke_3 (in UIKitCore)
UIKitCore +[UIKeyboardSceneDelegate _pinInputViewsForKeyboardSceneDelegate:onBehalfOfResponder:duringBlock:] (in UIKitCore)
UIKitCore ____UIViewControllerTransitioningRunCustomTransition_block_invoke_2 (in UIKitCore)
UIKitCore +[UIView(Animation) _setAlongsideAnimations:toRunByEndOfBlock:] (in UIKitCore)
UIKitCore __UIViewControllerTransitioningRunCustomTransition (in UIKitCore)
UIKitCore ___56-[UIPresentationController runTransitionForCurrentState]_block_invoke_3 (in UIKitCore)
UIKitCore -[_UIAfterCACommitBlock run] (in UIKitCore)
UIKitCore -[_UIAfterCACommitQueue flush] (in UIKitCore)
UIKitCore __runAfterCACommitDeferredBlocks (in UIKitCore)
UIKitCore __cleanUpAfterCAFlushAndRunDeferredBlocks (in UIKitCore)
UIKitCore __UIApplicationFlushCATransaction (in UIKitCore)
UIKitCore __UIUpdateSequenceRun (in UIKitCore)
UIKitCore _schedulerStepScheduledMainSection (in UIKitCore)
UIKitCore _runloopSourceCallback (in UIKitCore)
CoreFoundation _CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION (in CoreFoundation)
CoreFoundation ___CFRunLoopDoSource0 (in CoreFoundation)
CoreFoundation ___CFRunLoopDoSources0 (in CoreFoundation)
CoreFoundation ___CFRunLoopRun (in CoreFoundation)
CoreFoundation _CFRunLoopRunSpecific (in CoreFoundation)
GraphicsServices _GSEventRunModal (in GraphicsServices)
UIKitCore -[UIApplication _run] (in UIKitCore)
UIKitCore _UIApplicationMain (in UIKitCore)
longbridge-ios-app main (in longbridge-ios-app:main.m:22)
dyld start (in dyld)
I am trying to record many AVplayers playing in a UIView.
But when I record that UIView I can't see AVPlayers which are playing...!
what's the matter?????