Post

Replies

Boosts

Views

Activity

SF Symbols Fill
I am using SF symbols on my TabBar but even though I use the stroke version, it inserts the fill one. ProductsListView()         .tabItem {            Image(systemName: "book")            Text("Products")         } However, the image that shows up when I run the application in the book.fill Why this could be happening? Thx
2
0
2.3k
Nov ’21
Init or body ?
I have a store, but need to call the method inside the body. However the only way it works is if I call it inside init otherwise I have an error. @ObservedObject var store = MyStore() init(category: categoryModel) {     store.getData(categoryId: category.id) //here works } var body: some View {         store.getData(categoryId: category.id) //Here I will have the error: Type '()' cannot conform to 'View' Why ? Thx
1
0
516
Nov ’21
Loading View on API call
I have a Loading view saying "Please wait" that I want to be presented until the data from the API comes back. However, self.showLoading = false is executed even before store.getHomeItems() is finished. How can I do it ? struct HomeView: View {   @State var showLoading = false ... if (self.showLoading == true) { LoadingView() } else { //my content } ... ScrollView { //my scroll content } .onAppear { self.showLoading = true       DispatchQueue.main.async {          store.getHomeItems()       } self.showloading = false ... } I also dont know if I can call Dispatch on my HomeView, since my API layer has also an another DispatchQueue. URLSession.shared.dataTask(with: url) { (data, _, _) in       guard let data = data else { return }               let myItems = try! JSONDecoder().decode([ItemModel].self, from: data)      DispatchQueue.main.asyncAfter(deadline: .now() + 10) {         completion(myItems)       }        }     .resume() Thank you
2
0
1.5k
Nov ’21
Call 2o API after finishing 1st one
I have a button that when pressed should call an API which return an ID. Then having this ID, I will call a 2nd API. Button(action: { var id = self.callApi1() self.callApi2(id) }) { Text("Start") } How can I call the Api2 JUST when the Api1 was finished and returned its value ? Thank you
3
0
533
Dec ’21
TabBar Transitions
I have a TabBar with 3 items: Home ScrollView Products NavigationView Users NavigationView When clicking on the tabBar buttons, I will go back to the related view. However, at the point where I had left. I would like to every time I move to a different tab, it starts fresh like 1st time. a) If it's a scrollview, after coming back to the tab I would like the view scrolled to the top. b) If it's a navigationView, after coming back to the tab, I would like to scroll to the top and move to the Navigation root list. How can I do it. Thx folks
0
0
348
Dec ’21
Picker without NavigationView
I have a picker on my view but it's not selectable unless I replace my VStack for a NavigationView. However I cant have a NavigationView on this page, otherwise it brakes other parts. What's the solution for that ? Thx VStack { Picker }
4
0
1.9k
Dec ’21
Convert HTML to Text
In my SwiftUI project, I am trying to convert HTML to Text. Text("h1Test/h1p Test/pbr/spanTest/spanulliitem1/liliitem2/li/ul")           .font(.body)           .frame(maxWidth: .infinity, alignment: .leading)           .padding(.bottom, 16)           Is there a way to make it happen ? Thank you
2
0
5.3k
Feb ’22
WebView
I am trying to parse some html inside my app. Not an entire html page, but just few blocks of html code. So I'm using Ink package for that. // FIRST I HAVE A WEBVIEW import SwiftUI import WebKitstruct WebView : UIViewRepresentable {   var html: String  func makeUIView(context: Context) -> WKWebView {     return WKWebView()   }  func updateUIView(_ webView: WKWebView, context: Context) {     webView.loadHTMLString(html, baseURL: nil)   }} // IN HERE I'M PARSING THE HTML AND ALSO ADDING SOME STYLING TO IT import Foundation import Ink class ParseContent: ObservableObject {   var markdown: String = ""   func parse() -> String {     let parser = MarkdownParser()     let html = parser.html(from: markdown)       let htmlStart = "<HTML><HEAD></HEAD><BODY style=\"padding: 140px; font-size: 120px; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif\">"     let htmlEnd = "</BODY></HTML>"       return htmlStart + html + htmlEnd   } } // IN HERE I AM JUST USING MY PREVIOUSLY CREATED WEBVIEW WebView(html: myHtmlContent) .onAppear() {         htmlContent = ParseContent().parse()     } So here are my questions: Why the styling isn't working since I am concatenating the html ? I see it in a lot of tutorials but cant understand why not working. I would like to have the font inside my WebView, the same as I have for my other components like Text("abc") so I would keep a pattern and the visitor woudnt realize they are different components. How to set the WebView without a vertical scroll ? Keeping the entire height coming from the parsed html ? Thank you guys :)
2
0
1k
Jan ’23