Post

Replies

Boosts

Views

Activity

Coordinator Pattern - Which way is right?
Hey guys. I am trying to understand the way that Coordinator works. I am cathing myself in building my own the way I shall not (created a function that passes a ViewController which, as I understand, defeats the purpose of a Coordinator. Let us say I have 3 Diffrent ViewControllers that may be initialised from HomeVC depending on a Button. My way of thinking tells me to create something like this: Swift class MainCoordinator: Coordinator { var navigationController: UINavigationController? func pushVCWithUser(viewController: UIViewController & Coordinating, isNavigationHidden: Bool) { var pushedVC: UIViewController & Coordinating = viewController pushedVC.coordinator = self navigationController?.setNavigationBarHidden(isNavigationHidden, animated: true) navigationController?.pushViewController(pushedVC, animated: true) } } and just to initialize it in my VC. But it's not the way it supposed to be done I assume. Or is it actually?  Another way:  I have seen some tutorials when a guy used Enum for cases and created a separate function for each case. But then I don't know how would I pass some parameters while initializing another ViewController. Or shall I rather create a function like the one above but for each individual View Controller and pass the parameter (let us say that VCs are initialized with the number: Int) in a function signature?  Many thanks for any any help!
Topic: UI Frameworks SubTopic: UIKit Tags:
0
0
854
Mar ’21
Button animation issue
Hey guys. I've created that function to animate my button: private func animateButtonView(_ viewToAnimate: UIView) {         UIView.animate(withDuration: 0.2, animations: {viewToAnimate.alpha = 0}) { [weak self] (true) in             guard let self = self else { return }             switch true {             case true:                 DispatchQueue.main.async { self.addToFavoritesButton.setImage(SFSymbolsAsImg.checkmark, for: .normal) }                 UIView.animate(withDuration: 0.2, animations: {viewToAnimate.alpha = 1} )             case false:                 return             }         }     } But the problem is that animation does not finish. Alpha stays at around probably 85% from what I can see. Any help explaining what is wrong with this code will be appreciated! Many thanks.
Topic: UI Frameworks SubTopic: UIKit Tags:
0
0
617
Jan ’21
UITableView in VC
Hey guys. I am trying to add UITableView do the View of my VC. On top of the VC I added to UIViews with the custom elements and they work just fine. However. When I am trying to add UITableView, it pushes UIViews from above out of the screen. Syntax error - https://developer.apple.com/forums/content/attachment/04148dec-e53f-4473-b647-e317c8709e6e         noteTableView = UITableView(frame: .zero)         view.addSubview(noteTableView)         noteTableView.layer.borderColor = UIColor.systemRed.cgColor         noteTableView.layer.borderWidth = 5                  NSLayoutConstraint.activate([             noteTableView.topAnchor.constraint(equalTo: addNoteView.bottomAnchor, constant: 0),             noteTableView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0),             noteTableView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0),             noteTableView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0),         ])     } This is how I configured it. addNoteView is the UIView above. What am I doing wrong? Many thanks for help
4
0
868
Dec ’20
position of SCN Objects - beginner's question
Hey guys. I am having a little one with the ARKit. Not gonna lie that things is dope. Anyway, These are CGFloat values for SCNSphere ballNode.position = SCNVector3(0.5, -0.3, -1) These are for SCNText labelNode.position = SCNVector3(-50, 0, -100) To place the Sphere where I wanted to I had to use, I Suppose, meters. However for placing the Text I used centimetres. Why? Would anyone be that helpful and redirected me to some documentation about this as I did not find anything? Many Thanks
1
0
711
Dec ’20