Post

Replies

Boosts

Views

Activity

Reply to Test
Thanks in any case. A last point on this: if you close the thread by marking your own answer as the correct answer, you'll be credited 15 points (you didn't need them 😀) Is it a bug or intentional ? It is bizarre to be able to auto score…
Jun ’21
Reply to Most wanted Xcode features…
Wanted Feature : Allow to insert pictures in Xcode text files. Pain point: When writing code, it would be often useful to include a graphics or a picture in the comments (such as a func header). For instance, when dealing with trigonometric computation, a picture allows to precisely describe what each numeric value is. Presently, one need to keep in a separate file and reference it in the comment. Feasibility: That has been recently done in the Forum. Submitted as FB9182929
Jun ’21
Reply to Problem when using UIButton to switch view controllers in tabbed Application
just find the tabBarController that leads to FireMapViewController self.tabBarController So, if I understand correctly what you look for, try this: @IBAction func fireMapButton(_ sender: UIButton) { // It is often better to give the precise class even though it will have no effect here print("Fire Map Button tapped") let tabBarController = self.tabBarController tabBarController?.selectedIndex = 2 self.dismiss(animated: true, completion: nil) }
Topic: UI Frameworks SubTopic: UIKit Tags:
Jun ’21
Reply to How do I display a value in a label (the value keeps changing/updating)
If you do not explain more clearly the set up, it is nearly impossible to help. the button in this project has nothing to do with the label  But you say you have an error message when button is tapped. Which button is it ? error message in AppDelegate says,"Thread 1: "-[Project.ViewController buttonTapped:]: unrecognized selector sent to instance 0x133e08da0"" When does the location update ? When user moves ? On simulator or on device ? How much distance does it move ? If less than a few meters, that may not be enough to detect. Could you instrument the code with some print statements (lines 32, 70, 73) And tell exactly what you get. 1. import MapKit 2. import UIKit 3. import CoreLocation 4. import UserNotifications 5. 6. class ViewController: UIViewController, CLLocationManagerDelegate { 7. 8. @IBOutlet var mapView: MKMapView! 9. @IBOutlet private weak var positionLabel : UILabel! // <<< add this and connect to the label in IB 10. 11. let manager = CLLocationManager() 12. 13. override func viewDidLoad() { 14. 15. super.viewDidLoad() 16. 17. // Do any additional setup after loading the view. 18. 19. } 20. 21. override func viewDidAppear(_ animated: Bool) { 22. 23. super.viewDidAppear(animated) 24. 25. manager.desiredAccuracy = kCLLocationAccuracyBest // This should better be done in viewDidLoad 26. manager.delegate = self // This should better be done in viewDidLoad 27. manager.requestWhenInUseAuthorization() 28. manager.startUpdatingLocation() 29. } 30. 31. func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 32. print(#function, "didUpdateLocations") // To see if this is called 33. if let location = locations.first{ 34. manager.stopUpdatingLocation() 35. render(location) 36. } 37. 38. func userDistance(from point: MKPointAnnotation) -> Double? { // >>> I took it outside for better readability 39. 40. guard let userLocation = mapView.userLocation.location else { 41. return nil // User location unknown! 42. } 43. 44. let pointLocation = CLLocation( 45. latitude: point.coordinate.latitude, 46. longitude: point.coordinate.longitude 47. ) 48. 49. let value = userLocation.distance(from: pointLocation) // replace var by let, as never changed 50. return value 51. } 52. 53. 54. func render(_ location: CLLocation){ 55. 56. let coordinate = CLLocationCoordinate2D(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude) 57. let span = MKCoordinateSpan (latitudeDelta: 0.1, longitudeDelta: 0.1) 58. let region = MKCoordinateRegion(center: coordinate, span: span) 59. mapView.setRegion(region, animated: true) 60. 61. mapView.showsUserLocation = true 62. 63. let pin = MKPointAnnotation() 64. 65. pin.coordinate = coordinate 66. pin.title = "your home" 67. pin.subtitle = "Location" 68. 69. mapView.addAnnotation(pin) 70. print(#function, "userDistance(from: pin) ", userDistance(from: pin) ) 71. if let distance = userDistance(from: pin) { // >>> I call it here 72. positionLabel.text = String(distance) 73. print(#function, "distance", String(distance)) 74. } 75. } 76. }
Topic: Programming Languages SubTopic: Swift Tags:
Jun ’21
Reply to Show UIImageView for 1 second and hide again
When I execute the function, the button appears (hidden = false) and then I have an animation that in a certain time (1s) varies the alpha from 1 to 0, upon completion it returns the value to 1 (thanks to you) and maintains I hide the image ( hidden = true ). It is right? Before you call, image is hidden and alpha is 1 (by default as defined in IB probably) Before animation, you unhide : image is visible Then animation is to change progressively alpha from 1 to 0 ; hidden remains false At the end of animation, you hide the image again. and you need to reset alpha to 1, otherwise next time you play you start at 0 You could also have written it at start: func showIcon() { statusField.isHidden = false statusField.alpha = 1 //<-
Topic: UI Frameworks SubTopic: UIKit Tags:
Jun ’21
Reply to Unable to enter text in programmatically created UITextField
I created a plain vanilla objC project. From what you show I had to change: remove [self.window makeKeyAndVisible]; - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // [self.window makeKeyAndVisible]; // << removed return YES; } correct the addSubview statement by removing dot before addSubview     [self.view addSubview:text]; - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // Creates a text field somewhere near-ish to the center of the screen UITextField* text = [[UITextField alloc] initWithFrame:CGRectMake(50, 100, 200, 50)]; text.borderStyle = UITextBorderStyleRoundedRect; text.returnKeyType = UIReturnKeyDone; // Set the view background as white just to make sure we're in the right place... self.view.backgroundColor = [UIColor whiteColor]; [self.view addSubview:text]; } It works OK. The same works OK in Swift. In a plain VC. You could try to: option-clean build folder (one never knows!) -set the delegate for the textField (but that should not be needed) toggle keyboard from hardware / Software, just to see (cmd-K and cmd-shift-K) remove those 2 lines to simplify even more: text.borderStyle = UITextBorderStyleRoundedRect; text.returnKeyType = UIReturnKeyDone;
Topic: UI Frameworks SubTopic: UIKit Tags:
Jun ’21