Tag: swift

iOS用最新的FBSDK获取用户的家乡

我找不到Facebook SDK的快速文档。 我正在使用最新版本,并设法检索用户的姓名,年龄,邮件和个人资料图片。 我找不到如何find家乡。 当我尝试这个: conn.addRequest(req, completionHandler: { (connection: FBSDKGraphRequestConnection!, result: AnyObject!, error: NSError!) -> Void in if(error != nil){ println(error) } else { let loc = result.objectForKey("hometown") // loc is nil } }) conn.start() 我发现零。 我知道“.objectForKey(”hometown“)”应该返回一个“Page”而不是一个“string”,但我不知道如何处理一个页面。 谢谢你的帮助! 干杯 编辑:(感谢托比)我需要在login权限添加user_location ,然后,find的位置,我用: let obj = result.objectForKey("location") let location = obj.objectForKey("name") as! String

从一个ViewController继续到Tab Bar Controller内的另一个ViewController?

在界面生成器中我有一个UITabBarController ,它被设置为初始视图控制器。 在标签栏控制器中,我链接了三个独立的ViewController; 两个UIViewController和一个UITableViewController 。 我在UINavigationController的内部embedded了所有这三个视图,因为每个视图都会最终延伸到一个新的视图。 界面生成器 问题: 我现在想用UIViewController的一个UITableViewController来连接到表视图。 这样我可以传递信息,即func prepareForSegue() ,到表视图。 我想维护底部的标签栏控制器,但是我不想有能力从当前的UITableViewController通过视图顶部的UIBarButtonItem回到以前的UIViewController ; 这就是底部的标签栏。 然而,每当我继续“显示”表视图(它实际上是表视图导航控制器的延续)时,表视图顶部和底部的导航栏消失。 无论如何要防止这种情况发生? 我也尝试过segue“Show”直接到表视图,在这种情况下,标签栏是可见的,但它然后显示在视图顶部的“返回”button继续发送UIViewController 。 我对接受隐藏后退button的解决scheme犹豫不决,因为我觉得当我想从表视图本身导航到一个细节视图时,我会遇到问题,因为我会绕过UITableViewController的UINavigationController 。 任何解决scheme将不胜感激。 我一直试图解决这个问题好几个小时,而我即将把我的脑袋通过我的电脑屏幕。 此外,我想只是使用tabBarController?.selectedIndexbutton单击切换到表视图,然后使用NSUserDefaults传递信息,但这是NSUserDefaults ,因为我会传递一个自定义的对象,并将不得不编码并解码每个自定义字段。

我在UItextfield中input时如何更改我的UIlabel? 与旋转图标

我在UItextfield中input时如何更改我的UIlabel? 与旋转图标 我join了UITextFieldDelegate这个类,但是我仍然被困在如何填充UILabel并且在打印()的时候打印了一个旋转的时候 func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { // First get user's inputted text let enteredUserName = userNameTextField.text //bool to see if username is taken var isTaken: Bool = false // Then query and compare let query = PFQuery(className: "_User") query.whereKey("username", equalTo: enteredUserName!) query.findObjectsInBackgroundWithBlock { (objects: [AnyObject]?, error: […]

在自定义MKPinAnnotationView中显示注释标题和子标题

我在我的应用程序中使用MKPinAnnotationView 。 我将MapView对象设置为委托,并使用此代码来定制我的AnnotationView func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? { if annotation is MKUserLocation { //return nil so map view draws "blue dot" for standard user location return nil } let reuseId = "pin" var pinView = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseId) as? MKPinAnnotationView if pinView == nil { pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId) // pinView!.canShowCallout […]

在instantiateViewControllerWithIdentifier之后的IBOutlet nil

不确定我在这里做错了什么。 我列出了我的问题和我的代码。 很想得到一些帮助。 谢谢! 问题: VC1呈现VC2。 VC1的IBOutlets现在是零。 VC2解散回VC1。 VC1中的IBOutlets仍然是零。 VC1从flickR加载一个网格图片。 VC2有一个searchBar控制器,当VC2被解散时,它运行flickR查询。 在我的self.collectionView.reload()失败之前,因为self.collectionView是零:( VC1 import UIKit class MainViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource { @IBOutlet var collectionView: UICollectionView! @IBOutlet var searchMask: UIView! let api_key = "f87357398a52b80e0c9f76bf94c8ee94" var flickResults:NSMutableArray! = NSMutableArray() var titleResults:NSMutableArray! = NSMutableArray() override func viewDidLoad() { super.viewDidLoad() loadPhotos("Brasil") // Do any additional setup after loading the […]

MKMapView获取自定义路线上的坐标之间的距离

我有一个自定义的路线在地图上,并希望得到MKMapView上的两个坐标之间的距离。 以下是我迄今为止所做的步骤… 我已经抓住了坐标点并准备了一个CLLocationCoordinate2D数组(像customRoute = [CLLocationCoordinate2D] )。 为了显示路线,使用坐标数组,我使用MKOverlay方法绘制了MKPolyline 。 并使用distanceFromLocation方法计算两个坐标之间的distanceFromLocation 。 当我计算距离时,得到的距离是直线距离,但不是基于方向。 可以说,用户在位置A(在自定义路线上)并且想要到达位置B(在自定义路线上)。 所以我想要计算的是A和B之间的距离(不是直线距离)。 现在我正在从用户位置找出最近的坐标,并通过循环坐标数组来计算到目的地的距离。 但是,如果有多条路线,而最近的点位于另一条路线上,则不会给出正确的结果。 我想到的一件事是在地图上设置自定义方向,并find距离,但我不知道如何实现这一目标。 正在使用的语言是Swift。 任何forms的帮助/build议非常感谢。

如何在iOS键盘上显示美国手语(手势)?

我必须创build一个支持美国手语的自定义键盘。 为此,我必须将英文键盘的键符号转换为美国手语符号键。 所以如何在iOS键盘上将(英文字母)翻译成ASL-(手形符号)。 看看这个: 如何模拟IOS中的手语键盘? 我们必须做相反的事情。 即键盘上的手势。 而当用户按手势键字母它尊重的字母将出现在文本编辑器中。 提示:手语支持字体。 而且我使用“Gallaudet-Regular”字体在键盘按键上绘制手形符号。 但不能做到这一点。 注 – 下面是在iOS中创build自定义键盘扩展的代码。 当你使用下面的代码,它会创build一个键手按键上的button,但是当我用来点击键盘键时,它给出了“a”作为文本,但我想手标志,当我点击。 代码:第1步://创build一个自定义button self.testingButton = UIButton.buttonWithType(.System) as UIButton self.testingButton.setTitle(NSLocalizedString("a", comment: "Title for 'First Keyboard' button"), forState: .Normal) self.testingButton.sizeToFit() self.testingButton.titleLabel?.font = UIFont(name: "Gallaudet-Regular", size: 50) self.testingButton.backgroundColor = UIColor.redColor() self.testingButton.setTranslatesAutoresizingMaskIntoConstraints(false) self.testingButton.addTarget(self, action: "tapKeyboardButton:", forControlEvents: .TouchUpInside) self.view.addSubview(self.testingButton) 第2步:/ /执行buttonselect器上的操作 func tapKeyboardButton(sender:UIButton){ let title = sender.titleForState(UIControlState.Normal) […]

如何使多次启​​动的NSTimer失效

我在Swift做了一个实践项目来学习NSTimer如何工作。 有一个button启动计时器和一个button来使其失效。 当我点击每个button一次,它工作正常。 但是,当我多次点击启动定时器button时,我不再能使其无效。 这是我的代码: class ViewController: UIViewController { var counter = 0 var timer = NSTimer() @IBOutlet weak var label: UILabel! @IBAction func startTimerButtonTapped(sender: UIButton) { timer = NSTimer.scheduledTimerWithTimeInterval(0.4, target: self, selector: "update", userInfo: nil, repeats: true) } @IBAction func cancelTimerButtonTapped(sender: UIButton) { timer.invalidate() } func update() { ++counter label.text = "\(counter)" } } […]

testingiAds不会加载

这几天我一直在挠头。 我不能让iAds在模拟器(或真正的硬件)中出现。 我填写了iTunes Connect上的所有合约信息 为该应用创build了一个开发configuration文件 链接iAd框架并将其导入到ViewController的swift文件的顶部 使ViewController成为ADBannerViewDelegate的一个子类 为代表实施了3种方法(见下文) 我无法弄清楚为什么testing广告没有加载。 有其他人有这个问题吗? 据我了解,您不再需要通过iTunes Connect为iAds单独注册每个应用程序。 我将包括我的代码以供参考,但我怀疑问题是在设置的某个地方。 import UIKit import iAd class AdViewController: UIViewController, ADBannerViewDelegate { var bannerView = ADBannerView() override func viewDidLoad() { super.viewDidLoad() self.canDisplayBannerAds = true bannerView.frame = CGRectMake(0, self.view.frame.height-50, self.view.frame.width, 50) view.addSubview(bannerView) bannerView.delegate = self bannerView.hidden = true } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose […]

使用平移识别器来控制ScrollView

我有一个scrollView与分页启用。 我有一个UIView作为scrollview的子视图。 当scrollView到达其内容的button时,我正在滚动: scrollView.scrollEnabled = false 因为我正在做其他事情,需要拖动scrollView(黄色部分)的一部分。 所以scrollViews偏移locking在页面的button。 我想能够拖动UIView(红色),以启用滚动的scrollView,从而改变scrollviews内容偏移量。 所以我已经添加了一个UIPanGestureRecognizer的UIView,该行动使scrollView的滚动。 问题是,当我开始在UIView上平移时,我不得不提起手指并放下来,然后才能拖动scrollView。 这是一些代码: var scrollView: UIScrollView! var someView: UIView! var panAGes: UIGestureRecognizer! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. scrollView = UIScrollView(frame: CGRectMake(0, 0, view.frame.width, view.frame.height)) scrollView.contentSize = CGSizeMake(view.frame.width, view.frame.height * 2) scrollView.pagingEnabled = true […]