Stop UITableView from animating for keyboard - iphone

I have an UITableView with a single cell that contains an UITextView. When calling -becomeFirstResponder on the UITextView my UITableView gets messed up by the automatic animation. This only occurs when the UITextView has to scroll down for the end of the text.
I already tried disabling scrolling on the UITableView.

Depending on the needs of your interface, you could probably do what you're asking by making the parent view controller an instance of UIViewController instead of UITableViewController (which is what provides that "slide to get out of the way of the keyboard" behavior).
Indeed, if your UI consists solely of a text view, you probably don't need a table view at all.

Related

UISearchBar stays visible after scrolling

I created a TableView and added a UISearchBar from the storyboard.
The UISearchBarContoller didn't work for me so I decided to use the IBOutlet method.
The problem is when I'm scrolling down, the search bar goes up and gets behind the segment controller.
I couldn't find any questions about this or any fixes on the internet related to the IBOutlet and not the UISearchContoller.
Is there any way to make it collapse?
I know I can take it out of the TableView, but I want it to collapse into itself when scrolling.
I don't know how your storyboard or code is set up so I can only give guidelines.
A few guesses:
It seems that you've set up the searchBar as a cell of the tableview since it scrolls with the content. Try setting it out either outside (above) the tableView or as header (see answer 2)
If you've set it up as the tableHeaderView you need to be wary of the fact that UITableViewStylePlain will keep it at the top, but UITableViewStyleGrouped will not.

Touch detection problems with custom View inside UIView NOT UIScrollView

I was googling for a while and I found similar problems but when the custom View is inside a ScrollView, but that is not my case.
I have a custom view that consists of a UILabel behind a UITextField, so I can animate that label later.
The problem is that when I add a View in my ViewController and in the Identity Inspector I set the Class as my custom class, when I use the application the UITextField within my custom view does not receive the touches well and it takes time to gain focus and therefore to open the keyboard. The strange thing is that if I move that same arrangement of views to my main ViewController in Storyboard everything works fine. Why doesn't it do it when I place it using the described method?
I plans to reuse this custom view a lot, so putting logic and views in each ViewController is not an option.
Thanks in advance
Well, the problem was in the constraints of the container UIView. That means, the UIView in my main ViewController. The Height of the UIView was a little bit smaller than the space required for my custom view, so although my custom view seemed to draw correctly, it was not receiving the gestures correctly. The solution was simply increase the height to the correct value occupied by my custom View. Thanks a lot!

Manually scrolling UITableViewController when a UITextField becomes first responder

Harrr pirates!
I'm trying to make a data entry screen using a UITableViewController. It contains a grouped table view with two sections, each with a few (2 and 4) rows with a UITextField inside them.
When any of the UITextFields become first responder they scroll into view automatically. Great, you would say, but I want to scroll the whole section into view, not just the row containing the UITextField that became first responder.
I don't allow the user to scroll the UITableView by hand and I know to what position it should scroll to display correctly. However, I can't get my UITableViewController to stop automatically scrolling the UITextField into view for me.
Searching StackOverflow I can find a lot of questions about how to resize the UITableView when the keyboard appears, but this doesn't stop the automatic scrolling.
Any suggestions? Your help would be much appreciated!
TableView is basically an extension of scrollView therefore if you want to do the scroll yourself you should use the scrollview API.
Set the contectSize property to the size of the screen without the keyboard and the contentOffset to the location on the table you want to scroll to

UITextView in UITableViewCell scrolling problems

Ok. I have made a custom cell for my table, and it contains a text view. When I have multiple lines in the text view, I can scroll up and down, but in doing this the table also scrolls. How can I stop this behaviour? If anyone needs parts of my code or further details, please just ask. I am more than willing.
Thank you for your help
I suggest you to move text edit (write) behavior to another view controller. If you need read-only functionality from it then just increase cell and textView height.
Did you try setting canCancelContentTouches to NO? It's a property of UIScrollView, from which UITableView inherits.
Your custom cell seems to pass on touch events to its container class as well as utilizing them itself. Did you implement any - touchesBegan:, - touchesMoved: or - touchesEnded:?
If you make use of a touch events, you should not pass them on in the responder chain.
When the text view has focus, set scrollEnabled=NO on the table view. You may have to manually remove focus from the text view and restore scrolling when a touch occurs outside the text view.

Why can't I place a UIActivityIndicatorView on a UITableView by using Interface Builder?

I can place a UIActivityIndicatorView on a UIWindow or a UIView by using Interface Builder like as follows.
(source: hatena.ne.jp)
But I can't place a UIActivityIndicatorView on a UITableView by using Interface Builder.
What's the reason? Are there any ways?
I can place it on a UITableView programmatically.
(source: hatena.ne.jp)
Make the UITableView and the UIActivityIndicatorView both subviews of a parent UIView. You can then place the indicator view atop the table view.
The reason is because UITableView expects to be in charge of all of every one of its subviews for layout purposes. IB doesn't let you put subviews in a UITableView because while it is technically possible it is not supported.
In any case, the activity indicator would scroll up and down with the table, so even if you add it at the right place if the table is scrolled down, you could scroll it off the screen if you're not careful about deactivating user interaction while the indicator is showing.
When I need to show a generic activity indicator on the screen over everything, I use my own version of the UIProgressHUD. The UIProgressHUD is a private internal class, so I don't use that, I just made my own that does the same thing. It makes a view with a black background at 50% opacity and rounded corners, and I add a progress indicator and optionally a label to it, then I just add that view to the main window. Thus, no need for another UIView to encapsulate both, and you're not putting it in the table, which isn't supported (unless you put it within a cell within the table view).