User taps control and a different view comes up, animated. VoiceOver still highlights the removed control and it is stuck. User can't interact with the view.
This is not in a UIViewController but a custom UIView subclass.
How to tell VoiceOver to update its presentation or state when something appeared or disappeared with animation?
You can post an accessibility notification to indicate that the layout or the full screen of content has changed and select a new element.
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification
elementToSelect);
Related
I have a side menu which is impelemented by SWRevealViewController and my frontView has a collection view.
SWReveal works fine by tap on menu button, but the pen gesture is not working on collection view (which has a horizontal scrolling enabled).
can any one help me to force collection view to accept the pen gesture of the SWReveal?
SWRevealViewController's gesture controller and collection view are been clashing that's why the problem occurs. Other than that as per my view there is no practical way to identify what user wants to open by the gesture.
But Client needs a solution and the image shows it! keep user interaction ON of the view.
Let me know if you find anything else.
Best of luck.
Add below code in viewDidLoad
self.view.addGestureRecognizer(revealViewController().panGestureRecognizer())
I made UIPicker and with background on it:
(left is normal size of Picker, on the right is mine)
The problem is: when the user clicks on TextField - the picker reacts and scrolls down. Is it possible to prevent clicking, and make it to react only on swipe?
Add an another UIView above all view then add your UITextField on this UIView.
This will prevent the user interaction conflict.
I think you should move your UITextField farther away from the UIPickerView. Maybe a few notches up as the users touch would cover both the views.
I have a "side panel" like widget in my app that can be swiped in from the side of the screen. In order to help the users find the panel, I also added a UIButton to do the same thing - scroll the panel on and off screen.
The view comes from a different view controller, otherwise I would've simply created an extra panel in the interface builder and positioned it properly.
My problem is that the side panel gets positioned over the button, so if it is displayed with a button, it can only be dismissed with a gesture.
is it possible to specify at which "depth" I add a UIView when I programmatically add it in code?
This is the snipped that slides the panel in or out within the animation block.
self.audioSystemController.view.frame =CGRectMake(0,20, 120,460);
I need the UIView to be shown below a UIButton, so the button may be used to dismiss the view. I know this is redundant, but I cannot depend on the users to simply discover the side swiping gestures :/
Thank you for your help!
Check out the insertSubview:belowSubview: method of UIView.
I'm trying to simulate a UIAlertView behavior. Basically I want to present a view and disable the user interaction of all other views on screen (besides the presented view). How would I go about doing this?
Your pretend alert view should consist of two views. The first one is the size of the screen and has userInteractionEnabled set to YES. This prevents any touches going through to the views underneath. You then add, as a subview of this view, your actual alert window, with whatever buttons etc. you like.
You can contain both of these in a new UIWindow which you can set the windowLevel on to ensure they are on top of anything else in the screen.
You can also add a very slight backgroundColor to the screen-sized view which will dim everything behind it, if that is appropriate for your interface.
I would recommend adding a view (with user interaction disabled) with black background with an alpha of 0.3 to the applications' main window whenever you show your custom alert. This, in addition to preventing user interaction, also adds that subtle darkening effect to the UI behind your custom alert view.
Call [view setUserInteractionEnabled:NO] on all the views you want user interaction to be disabled. Don't forget to call [view setUserInteractionEnabled:YES]; on them again before you dismiss your custom alert view.
I've developed an iPhone App and most of it is accessible but I have an issue with one thing I do.
When the user clicks the settings button in the App (it has a main menu with a bunch of buttons for various Applications) I add a UIView on the top and and darken the background screen. Unfortunately for a blind person this UIView doesn't become "active", ie they are still navigating around the background screen.
I initially added the UIView using addSubview: and then tried insertSubview: atIndex: but neither have operated as expected.
Edit: Further information there are text fields and a button on this screen, perhaps I could instead make one of them active or something?? No idea how I would do this though.
How about using becomeFirstResponder? It makes the control receiving this message active and the receiver of input. For UITextView etc. it brings up the keyboard.
I didn't get what you are saying, but I thought there may be problem with the view added on the top.
Do one thing, if you added the view using interface builder then select the view and click on Layout menu in the Menu bar and select "Send to Back".
or else if you add that through code, then write code as
[self.view sendSubViewToBack:addedView];
Regards,
Satya