Tag: cocoa触摸

UI滚动时,应用程序停止从套接字接收数据

我有一个使用UDP套接字接收数据的iPad应用程序。 它有一个UIWebView浏览网页。 但是在UIWebView中滚动的时候,一切冻结,没有数据被接收。 我一直在寻找和它有关的runloops和线程。 但是,如果UIWebView不能运行在另一个线程以外的其他线程,如何在滚动时接收数据? 继续接收数据至关重要。 该项目使用Cocoa AsyncSocket的AsyncUdpSocket类,效果很好。 还有Matt Gallagher的单身课。 一切运行在主线程,UDP接收和UI。 提前致谢!

反应cocoa一次只限一个用户的信号

我需要在RAC中build模。 我有一个tabBarController将订阅通知信号。 说推送通知。 另外说当前活动的视图控制器也可能想要订阅相同的信号。 但是,如果任何视图控制器订阅它tabBarController不想处理它。 否则它会处理它。 当前可见视图控制器也改变。 它需要将责任委托给tabController。 目前没有RAC我维护tabControllerarrays的观察员。 如果任何观察员出席某种特定的通知。 它将委托给viewController,否则tabController将照顾它。 有没有更好的方法来使用RAC对此进行build模?

在Today-Extension中获取Notification-Center的宽度

我目前正在试图将一个CollectionView放在Today Extension中。 但有一件事困扰我。 我想实现每个单元格都适合我的collections视图中的一行。 所以计算细胞的宽度,取决于物品的数量。 一切工作正常在iPhone上,但在iPad上,它只是不正确。 单元格的宽度是很大的。 所以我debugging我的代码,似乎self.view.frame.width或self.view.bounds.width返回屏幕的整个宽度,而不是通知中心的宽度。 难怪为什么我的细胞很大。 我正在计算我的项目大小,如下所示: – (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { CGFloat count = (CGFloat)[self.collectionView numberOfItemsInSection:0]; return CGSizeMake(self.collectionView.frame.size.width/count, 80.0);; } 所以我现在的问题是,我怎样才能得到我的通知中心在iPad上的“真正的”宽度?

出现在视图之前,使UITableViewselect

我正在构build一个UITableView的详细视图。 详细视图包含一个UITableView,它有两行,我想在打开详细视图时select第一个。 我试图使用[viewWillAppear]的方法[selectRowAtIndexPath:animated:scrollPosition] [viewWillAppear] : – (void) viewWillAppear:(BOOL)animated { [[self tableView] selectRowAtIndexPath:[NSIndexPath indexPathForRow:kStartDateRow inSection:kSection] animated:NO scrollPosition:UITableViewScrollPositionNone]; } 但是,select不受此影响,并且在[viewDidAppear]使用它意味着select将在视图移动到位后发生变化。 如何在屏幕上显示详细视图之前进行select? 您可以在“设置”应用中看到我想要的行为示例。 转到常规>date和时间>设置date和时间。

使用自动布局时,设置UICollectionViewFlowLayout的属性不起作用

我试图build立一个UICollectionView与UICollectionViewFlowLayout与以下要求: minimumLineSpacing应该总是正好UICollectionView的高度的三分之一 。 我最初的想法是重写viewDidLayoutSubviews像这样: override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() collectionViewFlowLayout.minimumLineSpacing = collectionView.frame.height / 3 collectionViewFlowLayout.invalidateLayout() } 请注意,我使用viewDidLayoutSubviews,因为我打算使用自动布局,框架可能取决于一些复杂的约束。 所以我不能自己计算框架,但必须等到自动布局计算出来让我在viewDidLayoutSubviews中使用。 我通过编程创build一个UICollectionView来testing这个(并且旋转模拟器来查看minimumLineSpacing是否总是正确的)。 它似乎工作得很好。 然后,我切换到自动布局。 我只是简单地将collections视图的顶部,底部,前后空间限制在其超级视图中。 这样做后,设置minimumLineSpacing不再有预期的效果,它只是没有改变集合视图的外观的任何东西。 以下代码很好地演示了这个问题。 只要我将useAutoLayout设置为true ,设置minimumLineSpacing不再工作。 class DemoViewController: UIViewController, UICollectionViewDataSource { var collectionView: UICollectionView! var collectionViewFlowLayout: UICollectionViewFlowLayout! // MARK: – UIViewController override func viewDidLoad() { super.viewDidLoad() collectionViewFlowLayout = UICollectionViewFlowLayout() collectionViewFlowLayout.itemSize = CGSizeMake(100, 100) collectionView = […]

AFNetworking在任务上的死锁(tasksForKeyPath)

我确信这是我做的一些愚蠢的事情,但一个小时后我看不到它。 也许你可以。 编辑 :这是在一个设备(iPhone 5S W / iOS 8.4),而不是模拟器。 我有一个DownloadManager的iOS 8应用程序,一个单独的子类使用BackgroundSession的AFHTTPSessionManager。 它曾经工作得很好,但现在我做了一些事情,结果是AFNetworking在setDownloadTaskDidFinishDownloadingBlock死锁,当我引用self.tasks.count : [self setDownloadTaskDidFinishDownloadingBlock:^NSURL *(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, NSURL *location) { // POINT OF THIS BLOCK: RETURNS A FILENAME URL WHERE THE DOWNLOAD SHOULD GET STORED __strong typeof(self) strongSelf = weakS; if( !strongSelf ) return nil; // deadlocks here on tasks.count DDLogVerbose(@"setDownloadTaskDidFinishDownloadingBlock, start; dataTasks […]

cocoapods豆荚项目build立设置

所以每次我们运行一个pod更新时,pod项目都会被重新生成。 无论在pod项目中手动设置的构build设置是否重置。 我想知道是否在pod项目由pod更新生成后,在pod项目中设置目标的一些构build设置? 任何帮助表示赞赏。

只在Swift中的对象的生命周期中调用一次方法

假设我们重写scrollViewDidScroll方法,并且只有第一次滚动,我们想doSomething() 一个微不足道的方法是实现这个是具有一个实例级布尔variables和切换/检查它。 func scrollViewDidScroll(scrollView: UIScrollView!) { if(!scrolled) { scrolled = true; doSomething(); } } 我想要一个更好的解决scheme,不会引入scrolled的布尔variables。 与dispatch_once类似,但是在对象的整个生命周期中,而不是整个过程。 这个模式有没有名字?

WizWebview – evaluateJavaScript(“document.height”)返回nil

在我的应用程序中,我需要获取WKWebView网页的高度。 所以我使用下面的代码。 webView.evaluateJavaScript(("document.height"), completionHandler: { contentHeight,error in print(contentHeight) }) 直到iOS 9,这正确返回网页高度。 但在iOS 10中, contentHeight始终nil 。 我已经设定了 webView.scrollView.scrollEnabled = false 而Web视图在UITableViewCell 。 webView和UITableViewCell的高度是可变的。 在Web视图上有一个顶部和底部约束来适应单元格。 当我获得网页高度时,我希望它能够反映在单元格的高度。

在某些angular度的连接线有尖顶而不是圆angular

我的应用程序允许您使用各种工具绘制。 其中一个让你做出一个angular度:你点击三次,然后为你画一个angular度。 不幸的是,它变得非常尖锐,但由于某种原因而在某些angular度再次变圆。 我在用着 CGContextSetLineCap(context, kCGLineCapRound); 下面是一张照片来举例说明我在说什么: 有谁知道是什么原因或如何解决它,所以它是所有的时间? 在大多数情况下,我所做的只是: CGContextMoveToPoint(context, first.x, first.y); CGContextAddLineToPoint(context, second.x, second.y); CGContextAddLineToPoint(context, third.x, third.y); 然后中风。