Tag: swift

如何在故事板中设置条件静态tableview单元格内容?

我在故事板中制作了一个静态单元格的tableview控制器(我使用了静态单元格,因为它的设置屏幕几乎所有的单元格都是静态的,除了一个)。 有一个单元格在不同的条件下采用不同的内容(来自不同的UITableViewCell xib)。 如果我尝试在func tableView(tableView:UITableView,cellForRowAtIndexPath …)中指定该单元格的某个值,那么我还需要设置其他单元格。是否有一种方法可以只设置一个单元格,并将其他单元格作为他们在xib中。 另外如果有可能的话,我可以分配一个静态单元格的单元格的xib的内容,以防我已经有一个?

ARKit浮动飞机

有时ARKit会在现有的平面上创build平面。 它不合并它们。 我正在封闭空间testingiPhone 7的ARKit 。 放在那架飞机上的物体似乎在空间中漂浮。 这种情况不会经常发生,我无法一直重现。 有人能告诉我如何防止重叠和浮动飞机出现? 或者如何将3D物体放置在底部平面上? 这里是绘制飞机的代码。 func createPlaneNode(center: vector_float3, extent: vector_float3) -> SCNNode { let plane = SCNPlane(width: CGFloat(extent.x), height: CGFloat(extent.z)) let planeMaterial = SCNMaterial() planeMaterial.diffuse.contents = UIColor.blue.withAlphaComponent(0.4) plane.materials = [planeMaterial] let planeNode = SCNNode(geometry: plane) planeNode.position = SCNVector3Make(center.x, 0, center.z) planeNode.transform = SCNMatrix4MakeRotation(-Float.pi / 2, 1, 0, 0) return planeNode […]

由于内存问题,iOS应用程序在加载UIImage时崩溃

我的问题是非常相似的iOS应用程序崩溃,而UIImage加载(虚拟内存不清理) ,我有一个对象数组,每个对象有一个图片作为它的variables之一。 在上面的post中的答案似乎是,即使从数组中删除对象仍然存在。 但是,我似乎无法弄清楚他是如何解决这个问题的。 我正在使用Swift,在Objective-C中没有任何经验。 有人可以告诉我他怎么解决他的问题? 他在答案中的示例代码对我来说毫无意义。 这是我的课,其中包括图像属性: open class Cards { var name = "" var image : UIImage! var manaCost = 0 var rarity = "" var whichClass = "" var cardText = "" var tribe = "" var cardType = "" //Minion or Spell var set = "" init(name : String, image […]

如何在navigationController中重新加载rootViewController当按“返回”?

navigationController中有2个viewController:navigationController-> root-> A 在viewController A中,如果用户进行一些设置,然后按左边的条形button项(Back),我想让根视图更新它的布局(有些视图的大小会改变)。 现在,我通过在两个viewControllers之间添加一个navigationController(模态地)来实现它:navigationController-> root-> navigationController-> A。 有没有办法用一个navigationController更新根viewController?(截图1) 谢谢。 —–编辑—– 示例代码: override func viewWillAppear(_ animated: Bool) { creatButtons() } func createButtons(){ let button1 = UIButton() …….. let button2 = UIButton() …….. ……. } 如果我在viewWillAppear()下面创build了16个button,那么从A返回时所有的button是否都会被复制? 他们的大小都需要更新。

Swift 3,iOS 10 – 以编程方式声明UIStackView不适合屏幕宽度

我是一个新的Swift开发人员用WKWebView实现Safari的主要部分(我需要JavaScript和Swift之间的接口,所以SFSafariViewController不是一个选项),并试图以编程方式声明所有元素。 为了模仿Safari的search栏和进度条,我想把UISearchBar设置为一个UIProgressView的顶部,作为UIViewController的UINavigationItem的titleView 。 我可以用一个元素来pipe理它,但不能与两个元素的堆栈。 以下是我的项目现在的样子。 UISearchBar和UIProgressView太宽或太薄,不能正确填充UINavigationBar ,具体取决于旋转: 这是我的代码为ViewController.swift: import WebKit import UIKit class ViewController: UIViewController, WKNavigationDelegate, UISearchBarDelegate { var searchBar: UISearchBar = UISearchBar() var progressView: UIProgressView = UIProgressView(progressViewStyle: .bar) var stackView: UIStackView = UIStackView() var webView: WKWebView! override func loadView() { webView = WKWebView() webView.navigationDelegate = self view = webView } override func viewDidLoad() { […]

将数据从embedded的PageViewController传递给父视图控制器

我正在开发一个包含“代表查找器”的应用程序,该应用程序允许某人在UITextField中input他们的地址,或者从PickerView中select一个状态来查看其政府代表。 我有一个主要的ViewController,将显示用户提交上述选项之一后的结果。 在此基础上,我实施了一个ContainerView,其中embedded了两个页面的PageViewController; 一个包含一个UITextField和button来按地址进行search,另一个包括一个PickerView和一个按状态search的button。 PageView当前通过embedded转换连接到TableView,但是,当我尝试在PageViewController中引用父表视图控制器时,它说PVC没有父对象,即使ViewController将PageViewController标识为它的子对象。 我的问题是:什么是正确的方式来传递variables从一个孩子PageViewController到它的容器? 编辑:我已经尝试了以下,但它不起作用: 在我的PageViewController中: protocol SearchFinderDelegate: class { func getResults(results: String) } class LawSearchWindow: UIPageViewController { weak var newDelegate: SearchFinderDelegate? viewDidLoad() { /*Attempt to initialize newDelegate*/ newDelegate=self newDelegate?.getResults(results: “test123”) }} 在我的主要VC课程中,我有: func getResults(results: String) { print(results) } 更新:当我尝试做'newDelegate =自我'的声明,它告诉我'不能分配'VC名称'types的值键入'委托名称'

我如何得到在iOS应用程序中的Node.js服务器的响应?

我有一个Node.js服务器,当用户login时,发送JWT(JSON Web Token)作为响应。如何在我的Swift 4 iOS应用程序中获得响应? func handleLogin() { guard let username = usernameTextField.text, let password = passwordTextField.text else { print("Invalid form") return } guard let url = URL(string: "http://localhost:3000/users/authenticate") else { return } var request = URLRequest(url: url) request.httpMethod = "POST" request.addValue("application/json", forHTTPHeaderField: "Content-Type") let authUser = Login(username: username, password: password) do { let jsonBody […]

Swift 4标签属性

我从swift快速移动到swift 4.我有UILabels,我给非常具体的文本属性的标签。 当我正在初始化strokeTextAttributes的时候,我得到了“意外地发现了零,同时展开可选值”的错误。 我完全失去坦率。 在swift 3中,strokeTextAttributes是[String:Any],但是Swift 4抛出错误,直到我将它改变为下面的内容。 let strokeTextAttributes = [ NSAttributedStringKey.strokeColor.rawValue : UIColor.black, NSAttributedStringKey.foregroundColor : UIColor.white, NSAttributedStringKey.strokeWidth : -2.0, NSAttributedStringKey.font : UIFont.boldSystemFont(ofSize: 18) ] as! [NSAttributedStringKey : Any] chevronRightLabel.attributedText = NSMutableAttributedString(string: "0", attributes: strokeTextAttributes)

每个TableView单元更新,而不是只是一个被点击。

我有两个button(喜欢/不喜欢),像大拇指上下投票系统风格。 当我点击button时,每个单元格都被更新。 有没有办法解决这个问题,只有被点击的人更新? 另外,如何重新加载单元格,以便我不必刷新刷新以更新button.setTitle值的值? 这是我的代码: PFTableViewCell: class UserFeedCell: PFTableViewCell { @IBOutlet weak var likeButton: UIButton! @IBOutlet weak var dislikeButton: UIButton! var vote: Int = 0 // initialize to user's existing vote, retrieved from the server var likeCount: Int = 0 // initialize to existing like count, retrieved from the server var dislikeCount: Int = 0 […]

DateFormatter.localizedString在某些date被打破

这是我在select器更改时所做的: extension Date { var fromCurrentToUTC: Date { return addingTimeInterval(-TimeInterval(TimeZone.current.secondsFromGMT())) } } var title = "–" if let date = datePickerView.date?.fromCurrentToUTC { title = DateFormatter.localizedString(from: date, dateStyle: .medium, timeStyle: .none) } print("—–") print(datePickerView.date!) print(title) print(TimeZone.current) print(datePickerView.date!.timeIntervalSince1970) dateTimeSegmentControl.setTitle(title, forSegmentAt: 0) 这就是它看起来如何的date: 假设。 11月6日之前的date一切正常,11月6日之后一切都closures了。 为什么? 更新: 对于我使用的每个时区来说,这个关键date是不同的。 例如: 华沙(+0200)的date是10月30日芝加哥(-0500)的date是11月6日 订购的印刷品: —– 2017-11-04 00:00:00 +0000 2017年11月4日 America / […]