I have a really strange issue here. One of my testers found when they rotate my device in increments of 180 degrees the device UI will stop responding (not crash), but when rotated by 90 degrees, it works fine.
After some exploration with the Reveal app I found that after the app becomes responsive, a UISnapshotView is covering my UI, when I tell that layer to hide, I find that my app is still working fine behind it.
I am not creating that layer, and I believe its the layer that iOS uses to animate transitions and rotations. So my question is, what could be happening to cause that layer to get stuck, and only get stuck when you rotate 180 degrees (ie. flip the device to the opposite orientation.)
I do not do any custom animations, and I have no code being called on rotate.
Apparently this was related to some code I found to remove the rounded corners on the split-view in-case anyone else has this problem.
Related
I am making an ARKit swift app, and have followed this post on how to apply a mirroring effect to the camera feed. However, I've run into a couple problems. First, the mirroring effect stops after a while. This often happens when the images I am searching for come into the frame, but also happens when looking at something totally unrelated. The camera simply reverts back to the default, unmirrored view, and does not go back to the SCNTechnique mirrored view.
I have been able to conclude that this is not happening when the anchors are placed in the world, since the code is not executing those lines when the mirroring effect reverts back. Is there a way to stop this from happening and make sure the mirroring SCNTechnique remains? I am unsure if this is simply a hardware limitation of the iPhone 11 that the app is running on, or if there is an issue with the code.
Also, whenever the image reverts from the mirrored effect to the default camera feed, the world tracking is severely screwed up. The coordinate axes that are placed in the view essentially just move around with the camera, and do not seem to be attached to any specific place. Is this related to the above issue, or would this be a separate problem with the code or implementation?
I downloaded the latest iOS package from vidyo.io and have successfully built my application integrated with the Vidyo libraries and using the VidyoConnector API.
When my app first comes up, I was very happy to see that a preview video appears on the screen just where I’d expect it to be! However, when moving the view to a different location, the video did not render quite how I intended.
The video did move to the x/y position on screen that I’d hoped but the size did not adjust to my new view dimensions. Then I found the VidyoConnectorShowViewAt API call and that did indeed resize my view but the positioning of the video then was off.
Is this the correct call to make when moving and resizing a view? Does anybody have any ideas what I could be doing wrong? Any help would be appreciated.
Sounds like you are pretty close. If you are just moving your view to different coordinates without resizing, then no API call is necessary. But if also resizing, then indeed use VidyoConnectorShowViewAt. My hunch is that your coordinates that you are passing are off, as x and y should be relative to the view itself and not to the main view. So try passing 0 and 0 as x and y and see if that helps.
When I run my app on the simulator, the slider works great, accurate.
However, when the app runs on my phone, the slider is not accurate. For example, my finger points to value 100.0 and at the moment I release my finger from the screen, the value jumps to 102.2 or 98.2 or 91.5. It's never stops on the right value.
Can I fix it? Does anyone faced this problem before?
I would appreciate any help!
The simulator allows precise control using a mouse cursor. It doesn't represent reality at all compared to an actual iOS device.
A real iOS device requires the use of your much fatter finger. As you lift your finger you actually touch different parts of the screen. This is typical and not much you can do about it.
I'm using Qt 5.1 beta on iOS. I am deploying my app on an ipad.
The problems I am having regard how touch events are sensed and processed by qt. As long as I keep the ipad oriented straight (i.e. frontal camera is up), everything works fine. In that configuration, if I touch the screen, the coordinates of the point of touch sensed through mousePressedEvent(QMouseEvent *e) indicates that, as expected, the origin of the coordinate system is in the upper left corner of the screen.
When I turn my ipad, let's say left, so that the camera is to the left, my ui correctly rotates so that the buttons that I have are aligned to the screen. However, if I sense the touch events as described above, the origin of the coordinate system has not changed, so now it is in the lower left corner of the screen. Because of this, the buttons act as if they were not aligned to the screen but as if they turned around the same way I turned the screen (even if they are rendered aligned) So, if I tap on the visualized button it won't sense the touch, but it will if I tap were they would be if they would have not changed orientation as the screen did.
Does anyone have any idea what might cause this or how it could be fixed?
Please ask if you would like to see code. I did not put any as I would not know what might be of interest and my app is quite big already.
Thanks,
Corneliu
You file a bug report to the trolls about it. And also check to see if there is a bug report about it already.
http://bugreports.qt-project.org/
For the mean time you could push your coordinates through a mapping function of some sort based on the orientation of the device.
Also calling 'adjustSize()` on widgets tends to fix sizing and positioning with layouts.
Hope that helps.
My app (target iOS 5+, uses ARC and storyboards, for the App Store) uses some rotation transforms. There's a bug where an in-call status bar (such as if there's an ongoing phone call or microphone recording) causes the views to mutate beyond what the transform describes. To diagnose the problem I wrote a simple test app* that plays with a view's transform.
Initially (reproduced in simulators 5.0 and 6.1, and hardware 6.1) it looks like
After rotating by 20 degrees:
Still ok! But something weird happens when I toggle the in-call status bar (command-T):
Ok, well maybe it'll revert if I turn off the in-call status bar
Disaster! Let's try resetting the view's transform to CGAffineTransformIdentity
Oh what have I gotten myself into?!
Anyway, I'm new to CGAffineTransforms, and Quartz 2D as a whole, so I'd appreciate if someone could tell me why this is happening. The code is available on Github* if you want to poke around.
*Note that the code has been updated with a solution.
This is happening because toggling the in-call status bar changes the view frame, which (if it's set to autoresize subviews) autoresizes subviews accordingly. If the transformed view has any flexible margins, it could skew as shown in the above screenshots. To make it not skew like that, turn on all four struts.