Post

Replies

Boosts

Views

Activity

Drag drop nested list in swiftui
Hi, I managed to have a nested list in swiftui 3 (with foreach) and drag and drop to reorder the list when I enter the built-in edit mode. Problems / limitation when dragging / dropping a list item from edit mode: I can't change its nesting level: for example, if I drag an item that is 3 nested levels deep, I can't seem to be able to drop it on let's say level 1. When an item has children, and they are expanded, if I drag the father, the children will not follow. I can't drag from one section, and drop on another. What are the solutions to circumvent those problems? Is there built-in way to do it, if not, is it even possible without resorting to UIKit?
1
0
1.3k
Jan ’22
Position image inside UIButton
Hi, I have added a square image inside a UIButton. The goal is to have the square image on the left of the button, with space margin around 4 sides of button = 5. Here is the code: button.imageView?.contentMode = .scaleAspectFit button.contentHorizontalAlignment = .left; button.imageEdgeInsets = UIEdgeInsets(top: 5, left: 5, bottom: 5, right: 5) and here is the result: You can notice several problems: Right margin is > 5 (between button and text) Left margin > 5 The rest, aspect, and top and bottom margins are fine. How to have this button well on the left, and the text right next to it?
0
0
2.5k
Jun ’21
Subclassing UIButton doesn't change font size
Hi, here is a class for a UIKIT button. Some of those settings work, usch as cornerRadius: it does affect the button display, but some doesn't. For example, the size from    self.titleLabel?.font = UIFont(name: "Avenir Next Condensed Regular", size: 3) has no effect at all on the text of the font inside the buttons. Why is that? And how can I effectively alter the size of text from this subclass? class VotingButtonStyle: UIButton {       override func draw(_ rect: CGRect) {     super.draw(rect)     self.clipsToBounds = true     self.titleLabel?.font = UIFont(name: "Avenir Next Condensed Regular", size: 3)     self.setTitleColor(.black, for: .normal)     self.titleLabel?.numberOfLines = 3     self.layer.cornerRadius = 8   }     }
4
0
3.5k
Jun ’21
What is the earliest method to put in and trigger a performSegue?
Hi, I need the fastest, earliest programmatic transition possible from one vc to another. So I need to have  performSegue(withIdentifier: "fromEntryToVoting", sender: nil) performed as fast as possible so the transition happens as quickly as possible. But the vc containing this method should remain in the stack. It won't work from ViewDidLoad but will work from viewDidAppear. Is there an earlier method I can use to put my performeSegue so it will be performed asap?
2
0
530
May ’21
Tab bar item localization
Hi, tabBarItem.title = "LevelsVC-TabBarItem".localize() with tabBarItem.title i'm able to localize title when it is in viewDidLoad or viewWillappear but the localization will only happen when the tab becomes actives, otherwise it will show default value. How could I localize, programmatically, the item title without the need to make it active?
11
0
2.7k
May ’21
Localization not loading in some cases
Hi, here is a curious behavior hapening to my app. Here is the use case. App base lang is english. Other translation is french On a view controller, I have this:  self.introTextView.text = "DogProfileEditionVC-IntroTextView".localize() On corresponding language files I have these: "DogProfileEditionVC-IntroTextView" = "french text"; "DogProfileEditionVC-IntroTextView" = "english text"; Use case on a freshly opened or built app: Load viewcontroller. Text is correctly displayed in language. dismiss view controller. Open view controller again: text loaded is neither from the translation file, but from the storyboard. So on first loading after app was closed, opened, or built, the view controller shows correct text. On subsequent display, it ignores translation files and only load text from storyboard. This happens only one one view controller, and 3 texts. This doesn't happen on some text on the same VC. Why this strange behavior? Why does it localize only on first presentation of the view controller, and not on subsequent opening unless I close app in between? (i tried to reinstall app, clean build folder) Here are the string extensions used to localize: // Add method to Strings for easily triggering the localization process. extension String {   func localize() - String {     return NSLocalizedString(       self,       tableName: "Localizable",       bundle: .main,       value: self,       comment: self)   }       public func localize(with arguments: [CVarArg]) - String {     return String(format: self.localize(), locale: nil, arguments: arguments)   } }
3
0
2.8k
May ’21
How to best handle this localization scenario?
Hello, here is a particular localization scenario i'm not sure how to handle with default localization feature: App base language is english, translation is french. 1) On app load, swift will pick up 6 random items from a strings array of 100 items. 2) It will display each of those 6 strings on 6 user interface buttons. 3) User will tap on a button: string value is sent back into app. Here is the problem: 4) App will do processing with this value. Problem is that all internal processing from that values that went out from the array on user interface then back in app, is all done with english values. In particular that user choice is saved in external database, and I can't have saved in database localized versions: all internal processing on array values in english. How best to handle this situation? Is it possible from a localized french VALUE, to get corresponding VALUE in base language? If yes how? Or should I build my own thing for those cases when random values goes out on UI, then back in app... like an array of tuples containing translated items?
5
0
759
May ’21
How to exploit a vision function?
Hi, on this page: https://developer.apple.com/documentation/vision/vnrecognizeanimalsrequest/3366120-knownanimalidentifiers it is stated that this function: "Returns a list of animal identifiers the recognition algorithm supports for the specified revision." How can i build a test code in playground to get that list of animals identifier? What is the general methodology to run such functions from the documentation?
1
0
453
May ’21
Simplify code with textfield and textview delegate methods?
Hi, I need to move the controller up so fields are not hidden by keyboard. So I use textfield and textview delegate methods to achieve this. Here is the code, but it is repetitive. Is there any way to make it less repetitive?   func textFieldDidBeginEditing(_ textField: UITextField) {     self.view.setNeedsLayout()     UIView.animate(withDuration: 0.2, animations: {       self.view.center.y -= 150     }, completion: { finished in             })   }       func textFieldDidEndEditing(_ textField: UITextField) {     self.view.setNeedsLayout()     UIView.animate(withDuration: 0.2, animations: {       self.view.center.y += 150     }, completion: { finished in             })   }       func textViewDidBeginEditing(_ textField: UITextView) {     self.view.setNeedsLayout()     UIView.animate(withDuration: 0.2, animations: {       self.view.center.y -= 150     }, completion: { finished in             })   }       func textViewDidEndEditing(_ textField: UITextView) {     self.view.setNeedsLayout()     UIView.animate(withDuration: 0.2, animations: {       self.view.center.y += 150     }, completion: { finished in             })   }
3
0
611
Apr ’21
Problem with sleep() code
  override func viewDidAppear(_ animated: Bool) {     super.viewDidAppear(animated)           for percent in 1...10 {               print(percent)       self.accuracyLabel.text = "\(percent)" + "%"       sleep(UInt32(0.9))     }   }    @IBOutlet weak var accuracyLabel: UILabel! Hi, I have 2 problems with this code: 1) sleep(UInt32(1.0)) correctly prints 'percent' every 1 second. But as soon as I go under 1.0, such as sleep(UInt32(0.9)), the print don't happen every 0.9 seconds, but instantly. Why is that? 2)    @IBOutlet weak var accuracyLabel: UILabel! text is not updated on each iteration, but only after entire loop has completed. This is not what I would have expected, I would have expected update on each iteration, why is it not the case? regards, Brak
3
0
2.6k
Apr ’21
CoreMl Squeeze.net: get broader category prediction
Hi, down there you will find an implementation of the coreML/squeeze net that prints first prediction and confidence level. Problem is that its prediction are not general enough: if I send it a dog, it will try to guess the dog breed, instead of general categorization of "Dog" or even "Animal". Is there anyway to ask the model to return broader category?    static func analyzeImageMl(image: UIImage) {     if let imageToParse = image.cgImage {       do {         let model = try SqueezeNet(configuration: MLModelConfiguration())         let mlModel = model.model         do {           let visionModel = try VNCoreMLModel(for: mlModel)           let request = VNCoreMLRequest(model: visionModel) { (response, error) in             if let e = error {               print("Error is: \(e.localizedDescription)")             }             if let r = response.results as? [VNClassificationObservation] {               if let f = r.first {                 let id = f.identifier                 let confidenceToPercent = f.confidence * 100                 let confidenceString = String(format: "%.2f", confidenceToPercent)                 print("I think this object is: \(id)\n with a confidence of: \(confidenceString)%")               }             }           }           let handler = VNImageRequestHandler(cgImage: imageToParse, options: [:])           try handler.perform([request])         } catch {           print(error.localizedDescription)         }       } catch {         print(error.localizedDescription)       }     }   }
0
0
678
Apr ’21
How to animate a CATransform3DRotate ?
Hi here is the code:     let button = self.votingButtonsContainer[0]     let layer = button.layer     let rotationAngle: CGFloat = 49     var rotationAndPerspectiveTransform = CATransform3DIdentity     rotationAndPerspectiveTransform.m34 = 1.0 / -500     rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, rotationAngle * .pi / 180.0, 0.0, 1.0, 0.0)     layer.transform = rotationAndPerspectiveTransform This code correctly rotate in 3D my "button" in this case by 49 degrees (rotationAngle). Problem is that this is not animated. How to make this code animate the rotation, instead of simply displaying the result?
1
0
1.6k
Apr ’21