I am putting together a custom keyboard for practice, and I am trying to give the keyboard buttons a greater touch area like they have with the default iOS keyboard.
The image below shows the keyboard buttons and the extended touch area that I want to add:
I have already tried adding contentEdgeInsets but the padding that it creates is not touchable, and it also messes up the alignment of the button labels since the buttons are not images.
Related
I have a stackview that I am using as a dropdown menu by changing the spacing to collapse and expand the stack view.
There are buttons inside the stack view of the same size. When the spacing is negative they appear on top of each other. I set the layer zIndex to determine which button I want to show on top.
I was hoping this zIndex would also determine which button receives the tap notification but instead the last button in the stack view always receives the tap.
How can I make sure the visible button (with highest zIndex) is receiving the tap?
Is there a better way for me to implement a collapsible menu of buttons?
Best regards
If you are using stackview and want to show/hide the button conditionally, then while hiding button, also write:
stackView.removeArrangedSubview(buttonInstance)
buttonInstance.removeFromSuperview()
Instrad of buttonInstance.removeFromSuperview(), also try buttonInstance.isHidden = true
I have a Textview that's covered partially by the keyboard when it shows. As a result, the text which entered into the space covered by the keyboard can not be seen as it is typed.
How do I make the TextView scroll up when the entered text reached the space covered by the keyboard?
I have scroll enabled on the TextView but since all the text is visible on the screen , the vertical scroll bar is not visible. Can I have the vertical scroll bar visible at all time event when editing?
Best solution use IQKeyboardManager
library.
IQKeyboardManager works on all orientations, and with the toolbar.
There are also nice optional features allowing you to customize the
distance from the text field, add the next/previous done button as a
keyboard UIToolbar, play sounds when the user navigations through the
form and more.
I have used two uibarbuttonitems and added a flexible style between them to adjust them at left and right. But when I click just near the buttons the respective actions are got called, even I don't click on the button (here fox example I clicked approx 20px before the right bar button). can any one explain why the action is performed when i click outside of the button not inside it. I check it with custom uitoolbar also and it is show the same problem.
Cocoa-Touch controls usually have larger active touch areas than they are visible on screen. Especially with bar buttons, the touch area can be dynamically enlarged if there are no other bar buttons nearby.
In the iOS's Notes app, I wrote very long text on the TextView,
then I long press on the view, bring up the magnifier loupe, drag it to the bottom of screen (or top of the keyboard, if it is activated), the TextView will automatically scroll up.
How can I implement this with UITextView?
I tried
Add a UILongPressGestureRecognizer to my UITextView subclass, but its action never get called.
Override touchesMoved:withEvent: method in my UITextView subclass, but this method will not be called after the magnifier loupe appears.
You don't implement it; that's standard behaviour.
The magnifier scrolling occurs when you drag the magnifier off the bottom or off the top of the UITextView, or when you're close on the edge, about 10 pixels? (best to test this in the simulator where to have exact-control over the touch-position). If your text view is full-screen you may not be able to drag to a position outside the view, and the touch-region for scrolling may just be too small.
Notice in the Notes app that to scroll down you can drag the magnifier onto the tabs at the bottom. To go up you can drag it into the title. So long as you hold the touch outside the view it'll scroll.
All this also means your view can't go behind the keyboard when it's present. You need to resize the UITextView when the keyboard appears to get the scrolling to work.
I have a requirement for a very simple Button Bar.
It should take up the width of the screen.
It should allow at least 3
buttons.
The buttons should be of equal width and together take up
the whole width of the bar.
Each button should be tappable, but not
have a selected state.
The bar will be overlaid on a MapView and positioned directly above a TabBar.
Tapping a button will launch a Modal ViewController.
I thought about using a UITabBar and not allowing its tabs to become selected, but the HIG is pretty clear that this is not correct usage and UIToolBar doesn't allow the button widths to be set.
This seems like a very simple requirement but I can't see an obvious solution. Is there something I'm missing? Can anyone suggest a solution?
What's wrong with just creating a simple view that draws an appropriate gradient, and then adding three buttons of the appropriate size?
If you're feeling ambitious, or if this is something that you're likely to use more than once, you could even have the view create the three buttons. Call it ThreeButtonBar or something. Give it a constant height and adjust the width to match that of its superview so that you can use it in portrait or landscape orientation.