I'm using React Navigation to construct a tab bar based type of an app in ReactNative.
"react-native": "0.44.0",
"react-navigation": "^1.0.0-beta.9",
I've got the navigation part pinned down and working. But with regards to styling I'm seeing a shadow on the StackNavigator (navigation controller) inside tab bar. Refer image below.
I'm not used to seeing this kind of a shadow on native iOS apps (I'm an iOS mobile dev trying out RN)
upon further investigation I saw that there are 'shadow' properties specified in 'Card.js' in ReactNavigation. So I manage to fixed the issue by passing in some overriding cardStyle like so
cardStyle: { shadowColor: 'transparent' }
Given all the above, I have two questions
Question 1
Why is this the default behaviour/styling?
To debug the issue, I decided to do a quick view debugging in Xcode and found that 'shadow' does not show up in there.
Question 2
Why is this happening?. Since RN app is essentially a native app (native iOS in this instance), isn't view debugging a reliable way to debug these kind of view related issues?
Related
I'm using Maui to create a cross-platform app. To navigate through the app the appshell is used. On Android everything is working fine, but on IOS the custom titleview isn't displayed right. After startup only the bottom half of the view is visible, and after I switch to a different tab and back, the titleview is gone completely. I'm not sure what I'm doing wrong. Is there any way to fix this?
(Maybe related to https://github.com/dotnet/maui/pull/12834 but I'm not sure)
xaml:
<Shell.TitleView>
<Grid>
-- content --
</Grid>
</Shell.TitleView>
This issue can be reproduced for iOS. Several issues on Github has mentioned this question: Shell TitleView disappearing on tab change #9687 and Title view not displayed after navigating shell tabs #9269.
Also, several workaround has been found, such as wrapping the shell in a navigation page and using a custom render for AppShell on iOS.
Seems so many issues are related to the commit you mentioned in the question. You could wait for the new release, update Visual Studio and reopen these issues if it still not work.
Hope it works for you.
We have an app that has been around since before the days of storyboards. Prior to iOS 11 everything was fine after we updated it to be 64 bit. We have found two issues when running under iOS 11:
On iPhones the single UIBarButtonItem in the navigation bar's RightBarButtonItems isn't being placed all the way to the right as usual (the left side buttons is in the proper position).
On iPads we have what looks much like a segmented control (but made of individual buttons). It works fine when it is not in any kind of bar, but when it is in a bar it doesn't get touches.
In both cases I have used the UI navigator in Xcode to see that iOS 11 has added a couple extra views between bars and buttons. One of the added views is a bar content view (specific class depends on wether it is a toolbar or navigation bar; _UIToolbarContentView or _UINavigationBarContentView). The other added view is consistent among all kinds of bars, _UIButtonBarStackView.
In issue 1 above the added stack view is adding a very wide zero height view after the right bar button that is pushing the button way to the left (like it is trying to fit on an iPhone 4's screen far). Since the class has an underscore in front of it and isn't listed in the docs it must be a private class so even if I did dig into it and figure out how to keep the extra padding from getting added to the end it would get rejected by Apple for using private API.
I can't be sure what of the new views is intercepting the touches for the second issue but given that they are the only real differences I see between iOS 10 & 11 they seem the most likely culprits.
As I mentioned this was built before storyboards so the UI is built in xib files.
Has anyone run into issues with these new views and found a way to solve them? Or should I just rip out the whole UI and rebuild it?
I have issue when I try to push view controller in willTransitionToPresentationStyle:. The view was blinking for a split second before it fully expanded. It might be a small glitch or bug since iOS 10 and Xcode 8 are still in beta. But when I manually requested to change presentation style to MSMessagesAppPresentationStyleExpanded by calling requestPresentationStyle: after I push view controller, it went to expand mode more smoothly. Does anyone have similar issue?
I have had similar problems with transitions in iMessage apps. I think this should improve considerably when iOS 10 and Xcode 8 come out of beta, but for now we have to deal with Xcode's bugs.
There's a few things I've done to make this look better. Inside my extension I have a method that checks the presentation style every time the view changes. This method manages two different UIs - one for MSMessagesAppPresentationStyleExpanded and one for MSMessagesAppPresentationStyleCompact. This method hides and shows specific views accordingly. In my compact UI I have a button that allows the user to expand the interface by clicking it (this is basically the same as clicking the up arrow at the bottom right of the screen).
I've noticed that if you let the user expand the messages app after the view has been loaded for a while the transitions are much smoother and less buggy. Not sure why this is the case, but you should give it a try. Also, I've found segues to be extremely buggy, so that's why I went with keeping everything on one view controller.
I've run into an annoying problem - we use accessibilityIdentifier along with Appium to test our cross-platform apps but, very oddly, the navigation bar in our iOS app just will NOT let its components' accessibilityIdentifier be modified. I seen that some people have work-arounds that involve simply replacing the title label and various buttons or just creating their own navigation bar equivalents, but that seems a little overkill. Has anyone found a solution to this? Does Apple have a stance on whether or not this is a bug?
Background:
I have an iOS app in the app store, but it's running on a very old version of Cordova that needs to be updated. Unfortunately, the plugins I have been using for the navigation bar and for the tab bar are not compatible with the current version of iOS.
There are HTML toolkits that include this type of functionality, but in my case, I can't use them. I'm actually loading the web app from a web server rather than locally, and any communication errors would break HTML navigation. (I realize this is not ideal, but it is beyond my control.)
Question:
I have searched for other navigation bar and tab bar plugins, but I haven't found anything of interest. It seems to me that I'm missing something. Is there an easier way to add navigation controls to a Cordova app? Is there a plugin that I haven't found?
I ultimately just fixed the AndiDog plugins to work on iOS8.
I'm not sure if this is the answer you're looking for, but I have created a tab-bar system created in JS/HTML for hybrid apps and web apps. (That runs locally!). It's called app-tab-bar.