Tag: swift

是否有可能使用Swift在iOS 8中启动另一个应用程序?

是否有可能从另一个应用程序内启动任何应用程序? 例如,在我的应用程序中,我希望用户按下button并启动另一个应用程序(不要closures当前的应用程序,只需打开另一个应用程序并切换到该应用程序)。 我如何使用Swift在iOS 8中执行此操作?

居中4张带约束自动布局的图像

我是新来的自动布局,我很困难如何将这4个图像集中在所有不同的设备,如它看起来在图像上。 我试图应用自动configuration的约束,但它会有这样的距离,并不适合所有设备。 所以我的问题是,我需要在所有不同的图像上应用哪些约束条件才能使所有图像以相同的距离居中? 这是我在storyBoard中的单元格的样子: 图像1上约束选项的图像: 模拟器中的图像: /// MY TRY //// 在这里你可以看到我添加的约束和结果? 结果:

在viewForHeaderInSection iOS 8 swift中正确返回UIView

我对整体语言和iOS的发展相当陌生,所以请原谅我缺乏基础知识。 以前我试过并成功地实现了多个分段的UITableView自定义节通过创build一个xib文件创buildTableViewCell,然后将其加载到我的主ViewController并返回它编码如下: var customView = NSBundle.mainBundle().loadNibNamed("CustomHeader",owner: self, options: nil)[0] as? UIView return customView 但是,因为我开始得到“没有索引path的表格单元格被重用”我回到绘图板,并尝试以编程方式创build一个UIView并返回它,到目前为止,我已经不成功,但是这是我编码: func tableView(tableView: UITableView!, viewForHeaderInSection section: Int) -> UIView!{ if(section == 0) { var view = UIView(frame: CGRectMake(0, 0, tableView.frame.size.width, 50)) var label = UILabel(frame: CGRectMake(0,0, tableView.frame.size.width/2, 20)) label.text="My Details" let button = UIButton.buttonWithType(UIButtonType.System) as UIButton button.frame = CGRectMake(0, 0, tableView.frame.size.width/2, 20) […]

Facebook SDK使用Swift 3 iOS 10login

我通过Cocoapods安装了Facebook的Swift SDK: pod 'FacebookCore', :git => "https://github.com/facebook/facebook-sdk-swift" pod 'FacebookLogin', :git => "https://github.com/facebook/facebook-sdk-swift" 我遵循Facebook的Swift SDK( https://developers.facebook.com/docs/swift/login )的login说明,但无法正常工作。 在我的视图控制器里面我有以下几点: @objc fileprivate func facebookSignIn() { let loginManager = LoginManager() print("LOGIN MANAGER: \(loginManager)") loginManager.logIn([ .publicProfile, .email ], viewController: self) { loginResult in print("LOGIN RESULT! \(loginResult)") switch loginResult { case .failed(let error): print("FACEBOOK LOGIN FAILED: \(error)") case .cancelled: print("User cancelled […]

Swift / iOS:如何在AnyObject / Any或Pointers的函数中使用inout参数

我试图编写一个函数,它需要一个variables指针和一个描述符/键,并为variables设置一个新的值。 理想情况下,指针应该是一个对象或一个原语,但我也可以使用单独的函数(或附加参数)。 在我的代码中,我也使用键从数据库中检索新值,但在下面的示例中,我使用虚拟值对其进行了简化,以便在操场中轻松使用它: import UIKit func setValue(inout object: AnyObject, key: String) { switch key { case "String": object = "A String" case "UIColor": object = UIColor.whiteColor() case "Bool": object = true default: println("Unhandled key: \(key)") } } var string: String = "Default String" var color: UIColor = UIColor.blackColor() var bool: Bool = false setValue(&string, "String") […]

UISearchController – 警告尝试加载视图控制器的视图

我收到以下错误。 尝试加载视图控制器的视图时,它是释放是不允许的,并可能导致未定义的行为() 试了下面的解决scheme,但不适合我尝试加载视图控制器的视图,而它正在释放… UISearchController 演示项目可在链接中find。 点击主控制器中的添加button,添加几个时间戳。 在主视图控制器的行之间切换,您将看到上述错误。 代码如下所示,可以在短时间内下载。 import UIKit class DetailViewController: UIViewController,UITableViewDataSource,UITableViewDelegate,UISearchResultsUpdating,UISearchBarDelegate { @IBOutlet weak var basicTable: UITableView! var tblSearchController:UISearchController! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. self.tblSearchController = UISearchController(searchResultsController: nil) self.basicTable.tableHeaderView=self.tblSearchController.searchBar // self.tblSearchController.edgesForExtendedLayout = (UIRectEdge.Top ) // self.tblSearchController.extendedLayoutIncludesOpaqueBars = true self.tblSearchController.searchResultsUpdater = […]

如何在Swift中使用Textfield制作UITableview?

我想在每个单元格中使用文本字段进行表格视图, 我有一个快速文件中的自定义类: import UIKit public class TextInputTableViewCell: UITableViewCell{ @IBOutlet weak var textField: UITextField! public func configure(#text: String?, placeholder: String) { textField.text = text textField.placeholder = placeholder textField.accessibilityValue = text textField.accessibilityLabel = placeholder } } 然后在我的ViewController中 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{ let cell = tableView.dequeueReusableCellWithIdentifier("TextInputCell") as! TextInputTableViewCell cell.configure(text: "", placeholder: "Enter some text!") […]

在显示新视图之前,iOS会冻结很多秒

在我的应用程序的主视图中,我有一个表视图和两个原型单元格。 我已经使用故事板为每个单元configuration了segues。 在视图控制器中,我将覆盖prepareForSegue将所选单元格上的信息传递到目标视图。 目标视图不是特别复杂,当然也不需要任何繁重的处理来加载。 问题 当我第一次点击主控制器上的一个单元时,目标视图会在5到40秒的长时间延迟后出现。 编辑#2 :后来的水龙头通常更快 注意: 如果在目标视图出现之前再次敲击同一个单元格,则会触发目标视图立即出现。 如上所述,但点击不同的单元格会导致视图立即显示,但会显示来自第一个单元格的数据。 如上所述,但是点击不同的控件(没有关联的段落)会触发目标视图立即出现。 随后的“点击”通常显示较less的延迟。 时间分析器 – 为了我所能看到的 – 显示在这么多秒的延迟期间绝对没有发生任何事情。 我尝试过不同types的赛车,但没有什么区别 一些println显示,发生以下一系列事件: 在主要观点中,prepareForSegue被执行(没有延迟) 那么目标viewDidLoad被执行(没有延迟) …很长时间… 目的地控制器中的集合和表视图开始调用数据源相关的方法来从控制器获取数据。 该视图终于出现(带有不需要的animation,顺便说一句,但这是一个不同的问题) 从我读过的这个话题中,我怀疑这个问题可能与后台线程中发生的一些上述操作有关。 任何想法我可能做错了什么? 编辑#1 :添加了一些代码 在主视图控制器中,使用故事板链接了链接(CTRL-将两个原型单元格拖到目标视图中)。 代码看起来有点像下面这样: override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { var assetIndex = assetsTable.indexPathForSelectedRow()?.row println("prepare for segue – start: \(assets[assetIds[assetIndex!]]!.Name)") if let destination = segue.destinationViewController as? AssetThingsListViewController […]

尝试在Swift 3中保存自定义对象时尝试插入非属性列表对象

我有一个符合NSCoding协议的简单对象。 import Foundation class JobCategory: NSObject, NSCoding { var id: Int var name: String var URLString: String init(id: Int, name: String, URLString: String) { self.id = id self.name = name self.URLString = URLString } // MARK: – NSCoding required init(coder aDecoder: NSCoder) { id = aDecoder.decodeObject(forKey: "id") as? Int ?? aDecoder.decodeInteger(forKey: "id") name = aDecoder.decodeObject(forKey: […]

如何访问Swift中的iOS私有API?

我怎样才能调用非公开的iOSfunction,并从Swift访问非公有的特性? 具体来说,我想在QuartzCore框架中使用一个非公共类。 我想到的一个解决scheme是创build“桥接”Objective-C项目,将这些非公开的API封装到公共API中,而不是从Swift中调用这个Objective-C函数。 不过,我的解决scheme现在是纯Swift,我宁愿保持这种方式。 还有没有更加坚定的方法? (例如添加一些Objective-C桥接头文件 ) 注: 我知道你在想什么,私人API是私人的,因为它们不应该被使用。 我知道风险,我知道所有的地方,应用程序商店的限制等。毕竟,仔细考虑和大量的研究,不幸的是,似乎仍然是在这种情况下最好的办法。