Presenting a iOS Keyboard and Modal TextView Simultaneously - ios

So I haven't found a good answer on how to present the keyboard and a modal textview at the same time in Objective-C. One app I've seen that does this is Phonto in the app store. I'm trying to do the same thing. The cool thing about what they do is the modal view comes down from the top and the keyboard from the bottom with similar animation. Also, with an app that does this, I've been wondering how they would use auto layout to compensate for the keyboard. Does anyone know how to help me accomplish this?
Phonto Sample Image
Any help would be very appreciated.

Related

Firebase Screen name issue with modal views in iOS 13 and above

In our app we are tracking screen views manually by adding relevant codes in viewWillAppear functions. With iOS 13, with the non fullscreen modals, the viewWillAppear of the parent screen won't get called when the modal is dismissed and hence wrong screen names are reported there after, for events originating from the parent screen.
I have checked the Detecting sheet was dismissed on iOS 13 , but the solution to implement  UIAdaptivePresentationControllerDelegate helps when you manually swipes down.
I then turned off manual tracking and turned on Automatic tracking and surprisingly the screen classes are determined right. Question is how Firebase is figuring that out?
Of-course I can't use auto tracking as we need custom screen names.
I believe this could be a generic issue for whoever using manual screen name tracking and have non full screen modals. Just wanted to check what's the best way to solve this.
Couple of ideas I had was
Make all modals full screen. Not nice for our app
Implement extra delegates in those modals to let the parent know its dismissed. Not sure its a nice way
Setting screen names on each event? Could that be even possible?
If there are any other nicer/ cleaner option let me know.

How to stop iOS Custom InputView from floating around the screen

I came across a problem exactly as mentioned in the question in the link below.
How to stop my Custom Keyboard from 'floating' or being undocked on iPad
Does anyone have a solution for fixing this.
Thanks in advance.

Instagram pop up feature alike in swift

I was wondering if anyone have any idea how to work out something similar to Instagrams's feature that when you keep pressed a picture in a profile, it pops up until you release the screen. I have been looking around and haven't really found an answer. I was trying to work with popovers but they're not allowed in iphone and most of the alternatives use storyboards. Basically the difference from what im looking for and a popoverpresentation is that I want the new screen to cover most of the screen, not from it to come from the button itself, if that makes sense, while I have the screen pressed. So basically does anybody know how to do this in swift using no storyboards? Thank you!

How can I keep the navigation bar at the top of the screen when scrolling?

I'm working on an iPad app in Xamarin that (among other things) will download PDFs from a file system and show them in a webview. When scrolling through the webview to read a PDF, I've been asked to keep the navigation bar at the top of the screen. It currently goes away once the user has scrolled down at all.
I searched for how to do this and for a question like this here, but did not find anything related to mobile development. I would think this is something others have tried, but perhaps this goes against Apple guidelines? If anyone has found something stating that, I'll take that as an answer or any sample code of an implementation of this would be greatly appreciated.
Create UIVIew and add there navigationBar. Under you navBar add webView. That's all.

Has anyone found a good way of using the new iOS5 keyboard events?

During development of a recent feature for my iPad app, I realized that the new iOS5 keyboard docking/splitting behavior was causing huge issues. I use an inputAccessoryView for the keyboard with a text field on it similar to Safari's find on page feature. I display the keyboard over a scrollable UIWebView, so part my troubles come from having a shrunken UIWebview when the keyboard is docked and having a (mostly) fullscreen webview when it is undocked.
The main issues I have run into with the API are that the new UIKeyboardWillChangeFrameNotification and UIKeyboardDidChangeFrameNotification notifications are a step back from the previous API at best, and have garbage data that makes it nearly impossible to understand what the keyboard is really doing in many cases.
Can any of the following keyboard behaviors be recognized without arduously examining the begin/end frames that come back on the notifications?
Keyboard Undocks
Keyboard Docks
Keyboard Splits/Unsplits
Undocked Keyboard Shows
Undocked Keyboard Hides
View rotates while keyboard is undocked
I've come up with some abstractions to recognize frames that are docked or offscreen, but even with that, my code is becoming very unmanageable. If you've found better ways to do this, please answer or comment. I hope I'm missing something here. Thanks.
The thing is not to overthink this. Nothing of any importance has changed. If the keyboard comes into docked position at the bottom of the screen, you will get a "show" notification. If it leaves the docked position at the bottom of the screen, you will get a "hide" notification. That's exactly what happened before iOS 5.
The only difference is that instead of leaving the docked position because it is moving offscreen, it might be leaving the docked position because the user undocked it. You'll still get a "hide", so you can move your interface back into its base position. You don't need to know that the keyboard is now undocked (though you can find out that it is not offscreen from UIKeyboardDidChangeFrameNotification if you really want to). The reason you don't need to know is that when the keyboard is undocked / split, the user can be proactive and move the keyboard if it's in the way of something that needs to be seen.
Thus, all your old code from before iOS 5 continues to work just fine. It's all really quite clever...

Resources