Tag: swift

estimatedHeightForRowAt不被调用滚动

为什么方法estimatedHeightForRowAt的UITableViewDelegate协议不被调用,当我们滚动UITableView ? 方法estimatedHeightForRowAt仅在我们初始化UITableView时调用。

如何向右滑动以在Swift 3中显示新的View Controller?

我想能够在我的ViewController ,将显示另一个视图控制器, CommunitiesViewController 。 我已经看了其他线程,发现了一些这样做,虽然我相信他们是斯威夫特2。 这是我在我的ViewController使用的代码: override func viewDidLoad() { super.viewDidLoad() let swipeRight = UISwipeGestureRecognizer(target: self, action: Selector(("respondToSwipeGesture"))) swipeRight.direction = UISwipeGestureRecognizerDirection.right self.view.addGestureRecognizer(swipeRight) } func respondToSwipeGesture(gesture: UIGestureRecognizer) { print ("Swiped right") if let swipeGesture = gesture as? UISwipeGestureRecognizer { switch swipeGesture.direction { case UISwipeGestureRecognizerDirection.right: //change view controllers let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil) let […]

与表格视图行一样,在部分标题上分开segue

我有一个表格设置,每一行都有自己的自定义部分标题。 这是通过故事板中的原型单元完成的。 我有一个segue到一个视图控制器上的一个单击事件。 我通过ctrl拖动故事板来实现这一点。 但是,我希望我的部分标题继续使用不同的控制器。 我ctrl从我的标题原型单元格拖到故事板上的视图控制器也。 结果是,单击行并单击该行的标题,将我带到相同的视图控制器。 看起来头是链接到行。 有没有办法解决? 我可以给我的segues标识符和覆盖seg的准备? 还是有可能有一个单独的点击事件的部分标题作为行的其余部分? 更新:我必须尝试执行它,如下所示: 我ctrl从我的VC拖到故事板中的目的地VC并给了一个标识符。 在我的viewForHeaderInSection中,我添加了以下内容: let tapper = UITapGestureRecognizer(target: self, action:Selector("seg")) tapper.cancelsTouchesInView = false headerCell.addGestureRecognizer(tapper) return headerCell 我的seg func只是用我设置的标识符来执行一个seg,如上所述。 func seg(){ self.performSegueWithIdentifier("feedToMembersDetailed", sender: self) } 在我的overridePrepareForSeg中,我检查标识符并调用适当的方法: override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if (segue.identifier == "feedToMembersDetailed"){ //getting in here getMembersContentFromRow(segue) } … extra conditions } […]

如何将Realm对象转换为嵌套的NSDate属性的JSON?

我有一个嵌套的Realm对象与嵌套对象中的多个嵌套的NSDate属性。 我正在使用这个答案将嵌套的Realm对象转换为NSDictionary ,但我不知道如何将该NSDictionary转换为实际的JSON。 当我使用NSJSONSerialization.dataWithJSONObject() ,我得到的错误: 'Invalid type in JSON write (__NSTaggedDate)' 从我的理解,我必须首先将NSDate属性转换为NSString 。 问题是我不知道如何进入深度嵌套的对象来做到这一点。 此代码生成'Invalid type in JSON write (__NSTaggedDate)'错误中的'Invalid type in JSON write (__NSTaggedDate)' : let exercises = realm.objects(ExerciseProgram).first let dic = exercises!.toDictionary() do { if let postData: NSData = try NSJSONSerialization.dataWithJSONObject(dic, options: NSJSONWritingOptions.PrettyPrinted) { let json = NSString(data: postData, encoding: NSUTF8StringEncoding)! as String […]

Spotify iOS SDK Swift显示所有(!)播放列表(20+)

我能够很容易地在Swift中获得前20个播放列表。 func getPlaylists() { //DispatchQueue.global(qos: .userInitiated).async { let playListRequest = try! SPTPlaylistList.createRequestForGettingPlaylists(forUser: session.canonicalUsername, withAccessToken: session.accessToken) Alamofire.request(playListRequest) .response { response in let list = try! SPTPlaylistList(from: response.data, with: response.response) for playList in list.items { if let playlist = playList as? SPTPartialPlaylist { let currentPlaylist: PlaylistItem = PlaylistItem(playlistName: playlist.name, playlistURL: playlist.uri.absoluteString) self.playlists.append(currentPlaylist) } } self.tableView.reloadData() } 到现在为止还挺好。 […]

Twitter个人资料页面iOS Swift解剖(UIScrollView中的多个UITableViews)

嗨…他们是怎么实现这个的? 有Twitter教程页面的几个教程。 但他们不处理所有的可能性…第一…当你滚动顶部或底部的任何地方,顶视图开始滚动,直到分段控制,到达页面的顶部…然后滚动不停止和可下载开始滚动,直到接触和中途的tableview开始dynamic加载其他行…所以我不认为他们静态设置scrollview的内容 第二件事他们如何处理子表…他们containerView? 如果是这样,那么结构会是这样的 ScrollView TopView (User Info) Segmented Controll scrollView(to swipe right or left changing tables) ContainerView For TWEETS ContainerView For TWEETS & REPLIES ContainerView For MEDIA ContainerView For LIKES 我对吗? 所以他们如何处理子表和顶部滚动视图之间的滚动来实现基于滚动的顶视图位置变化… 这是令人兴奋的 这是我如何Handel嵌套ScrollViews …我做了一个childDidScroll协议和我的孩子tableviews实现,并在我的个人资料页我可以接收所有的child didscroll事件,然后在childDidScroll方法: //if child scrollview going up if(scrollView.panGestureRecognizer.translation(in: scrollView.superview).y > 0) { //check top scrollview if it is at […]

用atlas文件和SpriteKit进行批处理绘图的问题

所以我遇到了一个我正在构build的游戏平台上滞后的问题。 所以我正在研究如何提高性能。 我正在尝试批量绘图,以便减less绘制调用。 我有问题,但。 因此,一个全新的项目: 我有4个英雄精灵,所有图像都存储在.atlas文件夹中。 所以在阿特拉斯文件夹中每个精灵都有一个1/2 / 3x的图片。 我将其拖放到xcassets文件夹中。 然后我去我的sks文件创build4个精灵,并相应地改变纹理。 默认情况下,它们都具有相同的混合模式。 我有默认规则设置为true忽略兄弟顺序。 所有的精灵都在默认的z 0层上。 我已经设置了显示绘制计数。 我期望看到1画,因为所有的图像都在同一个地图集文件,但我看到4。 有什么我失踪? 只是好奇我怎么得到这个正常工作。 谢谢你的帮助!!!

Swift:如何使用snapkit获得正确的UICollectionView高度?

我可能会以完全错误的方式去解决这个问题,因为我尝试做的应该很简单…我有一个包含几个子视图的视图组件,其中一个是UICollectionView。 我使用SnapKit布局子视图。 UICollectionView是button的stream程布局,跨越0到n行,button的数量从一开始就是已知的。 当我通过SnapKitconfiguration约束时,Collection的高度为0,因为没有任何项目(cellForItemAt仍然没有调用)。 我将如何去获得在SnapKit中dynamic设置集合的高度? 还是有更好的方式来获得我正在寻找的基本stream程布局(dynamicheigth-adjustement)? (注:代码有点简单,只显示相关部分) class CategoryList: UIViewController, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout, UICollectionViewDelegate { var categories : [String]? var buttons = [BorderedButton]() private(set) lazy var collectionView: UICollectionView = { var flowLayout = UICollectionViewFlowLayout() let collectionView = UICollectionView(frame: self.view.bounds, collectionViewLayout: flowLayout) collectionView.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "collectionCell") collectionView.delegate = self collectionView.dataSource = self collectionView.backgroundColor = UIColor.cyan return collectionView }() […]

使用自定义样式在Swift中创buildUITextField扩展

我有几个UITextFields的视图必须看起来一样。 我想,我可能会创build一个扩展,预先样式我的文本字段(我想要有相同的样式)。 let passTextField: UITextField = { let tf = UITextField() //tf.backgroundColor = UIColor.blueColor() tf.translatesAutoresizingMaskIntoConstraints = false tf.layer.cornerRadius = 25 tf.layer.borderColor = UIColor(r: 34, g: 140, b: 204, a: 1).CGColor tf.layer.borderWidth = 2.0 tf.layer.masksToBounds = true /* Paddings */ tf.leftView = UIView(frame: CGRectMake(0, 0, 25, 0)) tf.leftViewMode = UITextFieldViewMode.Always tf.rightView = UIView(frame: CGRectMake(0, 0, 25, […]

终止应用程序,由于未捕获的exception“NSRangeException”,原因:'*** – :索引2超出空NSArray的界限

日志中的错误: *由于未捕获exception'NSRangeException',原因:'* – [ NSArray0 objectAtIndex:]:index 2超出了空NSArray的界限'*** 终止应用程序 ***第一个抛出调用堆栈:(0 CoreFoundation 0x000000010fdd8b0b __exceptionPreprocess + 171 1 libobjc.A。 dylib 0x00000001143a6141 objc_exception_throw + 48 2的CoreFoundation 0x000000010fdf027d – [__ NSArray0 objectAtIndex:] + 93 3 DropInn 0x000000010d598fc4 _TFC7DropInn21ListingViewController9tableViewfTCSo11UITableView14didSelectRowAtV10Foundation9IndexPath_T_ + 5972 4 DropInn 0x000000010d599837 _TToFC7DropInn21ListingViewController9tableViewfTCSo11UITableView14didSelectRowAtV10Foundation9IndexPath_T_ + 87 5的UIKit 0x00000001122b3dcd – [UITableView的_selectRowAtIndexPath:animation:的scrollPosition:notifyDelegate:] + 1763 6的UIKit 0x00000001122b3fe3 – [ UITableView _userSelectRowAtPendingSelectionIndexPath:] + 344 […]