Open Nathan1258 opened 1 month ago
Hey @Nathan1258,
The problem should be solved in the "patch-1.1.1" branch. Could you please check it and let me know? Thanks!
Hi @FulcrumOne,
I can confirm the problem has been solved - thank you for being so speedy! Nice to see my UI when entering text 🤣
Will return to stable branch now and wait for patch-1.1.1 to be merged!
Hello @FulcrumOne , I have same problem, and up to date.
config.backgroundColour = .red
@clbemre, Hey, I'll look at this at the weekend
PS. Could you paste here the code I can use to reproduce it? Thanks a million!
@FulcrumOne Hey thank you, I noticed that also, drag gesture conflicts with scrollview and causes an wrong behavior.
Additionally maybe you can add view.navigationBackGesture(.dragEdges) 😀
@FulcrumOne Hey thank you, I noticed that also, drag gesture conflicts with scrollview and causes an wrong behavior.
Additionally maybe you can add view.navigationBackGesture(.dragEdges) 😀
There is such an option, I don't remember how it's called exactly but one of NavigationGlobalConfig 😉
@FulcrumOne
I just saw view.navigationBackGesture(.drag). No (.dragEdges), i don't know :)
In a file "Public+NavigationGlobalConfig", there should be three attributes - backGesturePosition (the one that you're looking for), backGestureThreshold and backgroundColour. Could you confirm that in the version you use, all three attributes exist?
@FulcrumOne aa okey, i see. We have to configure global config. I thought we could adjust this on a per page basis sorry :)
@clbemre,
Do you think it would be better to add this option to every screen?
No but I just want to override . And my main problem is not this. My problem in video :)
yeah, tomorrow or Saturday I'm returning to this library 😅
Hello, @clbemre Could you share a code that contains an issue with background color? It will help me to speed up the problem-solving process.
Also the issue with the offset for horizontal drag-gesture action has been resolved in the branch Patch-1.1.2
. Feel free to give it a try and let us know if it doesn't work as expected.
@jay-jay-lama Hello, my code like this in short.
var body: some View {
DefaultContainerView {
VStack(spacing: 0) {
navigationBarView
.padding(.horizontal, 20)
ScrollView {
VStack(spacing: 20) {
Group {
nameTextField
surnameTextField
emailTextField
}
}
.padding(.top, 30)
.padding(.horizontal, 20)
}.scrollDisabled(!isShownKeyboard)
}.overlay(alignment: .bottom, content: { saveButtonView })
}
.keyboardToolbar(focusedField: $focusedField, currentVisibilityID: .toolbarVisibilityID)
.onKeyboardAppear { self.isShownKeyboard = $0 > 0 }
.animation(.smooth, value: isShownKeyboard)
.onTap { focusedField = nil }
}
also
struct DefaultContainerView<Content: View>: View {
let content: Content
init(@ViewBuilder content: () -> Content) {
self.content = content()
}
var body: some View {
ZStack {
DefaultBackgroundView()
content
}
}
}
@clbemre, both problems should be resolved in the newest version
@FulcrumOne Thank you!
@FulcrumOne It has solved. But just there is a little problem.
Oh, could you describe it, because I'm clearly blind and can't notice it 😅
@FulcrumOne when it first opens on each screen there is a flicker for the first time when trying to scroll and then it works fine without flickering 😀
Oh, yeah, you're right. I'll check it, thanks
@FulcrumOne I have tested without NavigationView plugin this page. When I remove the navigationview plugin from the page, I do not encounter this problem.
@FulcrumOne It seems that I've noticed the same problem if I use native solution without our library. Navigation bar has it's own observer of scrollView callbacks and it can be native problem. And issue appears not only on first screen presenting but also during switching between the textfields and also just during ordinary scrolling. So it's random... Need also your test to confirm the situation.
On the video the same problem with native solution.
https://github.com/user-attachments/assets/96582c54-c53f-4872-947b-802ed0a6b0c7
I unserstood. But i told you , When I remove the navigationview plugin from the page, I do not encounter this problem. :)
removed video. without NavigationView
@FulcrumOne hey there is also a very little problem :)
removed video
with background
var navigationConfig: NavigationGlobalConfig {
var config = NavigationGlobalConfig()
config.backgroundColour = .red
config.backGesturePosition = .edge
config.backGestureThreshold = 0.25
return config
}
removed video. without background
var navigationConfig: NavigationGlobalConfig {
var config = NavigationGlobalConfig()
config.backGesturePosition = .edge
config.backGestureThreshold = 0.25
return config
}
@clbemre, this is actually tricky one and I doubt I will be able to "fix it" - background color cannot be clear, otherwise you always see the view underneath. It's because the animation of the views involves modifying their offset (or scale / rotation).
If you really need to make the safe areas clear, I strongly recommend using .ignoresSafeArea modifier 😉
@FulcrumOne I set the background color. Actually, I don't have a problem with this, I just said it so you know :)
I use .ignoresSafeArea when necessary. But I don't understand where you mean I should use it :)
Oh, I just thought about an use-case like putting a picture that is supposed to be behind a status bar / home indicator and someone may think that it can be resolved with clear background (someone actually asked me exactly this). So if it's not your question just please ignore it 😅
That previous problem I'll try to resolve later today. Thanks for reporting!
@FulcrumOne Hey, hello again. How are you? I have a little problem again :) I have tested without NavigationView. FYI :)
also it's block my keyboard toolbarview visibility.
https://github.com/user-attachments/assets/dbcbe535-de96-4076-9b01-ea97c761f989
hello again, @clbemre 😉
does this behaviour only occur with maps (and scrolling views partially)? Could you please provide me with the code I can use to reproduce the above bug? Thanks!
@FulcrumOne Hello again. Also I have conflick drag gestures.
I have using this framework. https://github.com/ciaranrobrien/SwiftUIPageView but I got confilict with back gestures.
https://github.com/user-attachments/assets/f0962e68-5405-4a9f-bff4-4fdad73132a1
My code like that; (i will delete later, sorry @FulcrumOne )
deleted code
@FulcrumOne Hello, Did you check it?
hey @clbemre,
I've saved the code (so you can delete it), but currently I'm working on PopupView. Sorry, will return to this issue as soon as I finish the sprint for that library 😉
P.S. Soon the tasks should be done a bit faster, as we have expanded our team a bit 😉
Btw, if you use Discord, you can join our here: https://discord.com/invite/dT5V7nm5SC
It's not ready yet, but at least we could communicate more effectively with PMs 😅
@FulcrumOne thank you, I don't have Discord now :) okey I'll be waiting. It is important to solve the problem but there is no rush. 😀
Best regards.
@FulcrumOne Hello again, how can apply opacity background ? view.backgroundColour(Color.brandBlueColor.opacity(0.2)), doesn't work?
@FulcrumOne Hello, I'm still waiting for this topic. 👀 :)
Hey @clbemre,
Are you sure it doesn't work? I just tried and here's the effect:
P.S. Sorry for not responding, but I'm busy with other libraries currently, and the next time window for this one will be mid-September ;)
@FulcrumOne I have tried a few thinsg but I wasn't successful.
CompletedDialogView().push(with: .dissolve)
Global config
var navigationConfig: NavigationGlobalConfig {
var config = NavigationGlobalConfig()
config.backgroundColour = Color.viewBackgroundColor
config.backGesturePosition = .edge
config.backGestureThreshold = 0.25
return config
}
View Config
func configure(view: NavigationConfig) -> NavigationConfig {
view.backgroundColour(Color.brandBlueColor.opacity(0.2))
}
// -> no background in contentView
var body: some View {
ZStack {
contentView
.padding(20)
}.frame(maxWidth: .infinity, maxHeight: .infinity)
}
As shown:
https://github.com/Mijick/NavigationView/assets/53881694/43c848f8-d72e-4104-9ba2-9a455266c3a4
Clicking on a textfield will cause a black (or the colour you set
config.backgroundColour
as within theNavigationGlobalConfig
) to appear and fill the entire view.