Im using a lazyvgrid with a customImage View that supports lazy loading of a high res image (otherwise thumb is used)
What I'm looking for is some way to initiate my loadFullImage() functionality when the CustomImage view is visible ( onAppear() is not what I need. its called when view is loaded in grid, not when visible )
I've tried variation of this, but they do not work reliably
CustomImage(key: key)
.background( GeometryReader { proxy in Color.clear
.preference(key: ViewVisibleKey.self, value: true) } )
.onPreferenceChange(ViewVisibleKey.self) { isVisible in
DispatchQueue.main.async { loadImage(key) } } }
Anyone have any suggestions ? either why the code above doesn't work reliably (its like 10%) , or some other way to accomplish this. Thanks
Post
Replies
Boosts
Views
Activity
I have a swiftui iPhone app running on the "iOS Apps on Mac" simulator. What I'm trying to do is get a notification when the window size changes, but nothing seems to work.
I have tried
.onReceive(NotificationCenter.default.publisher(for: UIContentSizeCategory.didChangeNotification)) { _ in
updateStuff()
}
I also tried
.onAppear() {
updateStuff()
}
but neither seems to get called
any suggestions ?
I'm having issues with a Lazyvgrid displaying images after the screen orientation changes ( either from horizontal to portrait, or the reverse )
What happens is the images are not sized correctly. If 2 column , I see 1/3 of column 1 and the image in column 2 takes 2/3 of the screen width. Similar issues with 3 or 6 column layout.
The Lazyvgrid is inside a ScrollView and thats inside a Tabview.
I'v tried to trick an update by changing the column layout, the content mode (fit/fill) of the images, etc. but so far nothing has worked.
Any suggestions ?, anyway to invalidate a lazyvgrid and have swiftui rebuild it ?
Thanks.
I want to test running my iPhone app in the MacOs iPhone emulator.
I installed the release version of my app from the store and it works 95%. So I'd like to test a new build , but I'm not sure how to install it.
I'd like to offer an option to let my users see tips again.
Is there a way to do this either globally, or per tip ?
right now the only option I see is to have initialization login to call Tips.resetDatastore() and have the user restart the app.
I'm currently using events and rules to only show each tip once.