Questions tagged «ios»

iOS是在Apple iPhone,iPod touch和iPad上运行的移动操作系统。使用此标签[ios]来解决与iOS平台上的编程有关的问题。使用相关的标签[objective-c]和[swift]解决那些编程语言所特有的问题。

7
Xcode 8 Beta-转换为当前的Swift语法失败:找不到测试主机
当我尝试使用Xcode 8的转换向导时,我收到一条错误消息。尝试重新启动,下载新代码并删除我的DerivedData文件后,我无法幸免此错误: 转换为当前的Swift语法失败:找不到测试主机 我尝试了两个选项:Swift 2.3和Swift3。选择一个版本后,我立即收到该错误。 这是错误的屏幕截图:
115 ios  xcode  xcode8 

5
要求用户许可以在iOS 8中接收UILocalNotifications
我使用以下方法在应用程序委托中设置了本地通知: - (void)applicationDidEnterBackground:(UIApplication *)application { UILocalNotification *notification = [[UILocalNotification alloc]init]; [notification setAlertBody:@"Watch the Latest Episode of CCA-TV"]; [notification setFireDate:[NSDate dateWithTimeIntervalSinceNow:5]]; [notification setTimeZone:[NSTimeZone defaultTimeZone]]; [application setScheduledLocalNotifications:[NSArray arrayWithObject:notification]]; } 当我运行该应用程序然后退出时,我收到一条错误消息: 2014-06-07 11:14:16.663 CCA-TV [735:149070] 尝试安排本地通知 {触发日期= 2014年6月7日,星期六,太平洋夏令时,时区= America / Los_Angeles (PDT)偏移量-25200(日光),重复间隔= 0,重复计数= UILocalNotificationInfiniteRepeatCount,下次触发日期= 2014年6月7日,星期六,太平洋夏令时间,用户信息=(空)},并带有警报但尚未获得用户显示警报的权限 如何获得显示警报的必要权限?

19
允许与另一个UIView下的UIView交互
有没有一种简单的方法可以允许与另一个UIView下的UIView中的按钮进行交互-在该UIView的顶部没有真正的对象,而是位于按钮顶部? 例如,目前我有一个UIView(A),在屏幕的顶部是一个对象,在屏幕的底部是一个对象,中间没有任何对象。它位于另一个UIView的顶部,中间有按钮(B)。但是,我似乎无法与B中间的按钮进行交互。 我可以看到B中的按钮-我已经将A的背景设置为clearColor-但是B中的按钮似乎没有接收到触摸,尽管这些按钮之上实际上没有来自A的对象。 编辑 -我仍然希望能够与顶部UIView中的对象进行交互 当然有一个简单的方法可以做到这一点吗?

8
Xcode 9 Swift语言版本(SWIFT_VERSION)
我最近将xcode更新到了版本9。在此之前,每当我使用Xcode 8.x时,pod update它都会向我显示一个更新代码,将该代码转换为Swift 3并解决了错误。但是现在它给了我这个错误: 对于使用Swift的目标,必须将“ Swift语言版本”(SWIFT_VERSION)构建设置设置为支持的值。可以在构建设置编辑器中设置此设置。 对于这个错误,我尝试过Build Settings > Swift Language Version,它是Swift 3.2,但是由于更新调用已重新安装了某些Pod,例如Alamofire,并说要安装Xcode 8.x才能将代码转换为Swift 3,所以我需要安装一个最新的Xcode的附加版本?如果是,那么如何将Xcode 8与Xcode 9一起安装?
115 ios  swift  xcode  swift3  xcode9 

30
UITableViewCell子类“执行-layoutSubviews之后仍需要自动布局”
使用XCode 4.5和iOS 6,我正在开发带有带有自定义单元格的简单表格视图的应用程序。我已经在iOS 5及更低版本中完成了一百次,但是由于某种原因,新的autoLayout系统给我带来了很多麻烦。 我在IB中设置了表格视图和原型单元,添加了子视图并将其连接为IBOutlets,然后设置了我的委托和数据源。但是现在,无论何时从中获取第一个单元格cellForRowAtIndexPath,我都会遇到以下错误: ***-[[ShopCell layoutSublayersOfLayer:],/ SourceCache / UIKit_Sim / UIKit-2372 / UIView.m:5776中的断言失败 ***由于未捕获的异常“ NSInternalInconsistencyException”而终止应用程序,原因:“执行-layoutSubviews之后仍需要自动布局。ShopCell的-layoutSubviews实现需要调用超级。” 我尚未在我的子类化单元(ShopCell)中实现-layoutSubviews方法,即使我尝试这样做并添加超级调用也是如此,因为这表明我仍然遇到相同的错误。如果我从IB的单元格中删除子视图,然后将其更改为标准的UITableViewCell,则一切都会按预期进行,尽管我的单元格中当然没有数据。 我几乎可以肯定,我缺少一些简单的东西,但是找不到任何文档或指南来建议我做错了什么。任何帮助,将不胜感激。 编辑:只是尝试将其更改为IB中的UITableViewCell,并将所有子视图保留在原处,仍然是相同的错误。

10
如何在iOS上获得ISO 8601日期?
2004-02-12T15:19:21+00:00通过date('c'),在PHP中获取ISO 8601日期字符串(例如)非常容易,但是如何在Objective-C(iPhone)中获取它呢?有没有类似的短途方法? 这是我发现可以做的很长的路要走: NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ssZ"; NSDate *now = [NSDate date]; NSString *formattedDateString = [dateFormatter stringFromDate:now]; NSLog(@"ISO-8601 date: %@", formattedDateString); // Output: ISO-8601 date: 2013-04-27T13:27:50-0700 对于如此重要​​的事情,似乎有很多困难。

12
如何使用Swift以编程方式创建UILabel?
如何UILabel在Xcode 6中使用Swift以编程方式创建? 我已经开始使用Xcode 6中的新“单视图应用程序”,并为该项目选择了Swift。我有我的文件AppDelegate.swift,ViewController.swift并且不确定从这里做什么。
115 ios  swift 

5
iOS静态和动态框架说明
我必须承认,随着iOS 8的发布,我对iOS中的动态和静态框架有些困惑。 我正在寻找一种分发我创建的库的方法,并且我需要支持iOS 7及更高版本。(注意:这将是专有框架。我无法使用可可豆荚,也无法分发源代码)。这是我已经知道的: iOS 8引入了适用于iOS的“嵌入式框架”,但据我所知,它们不适用于iOS 7,仅适用于iOS 8及更高版本。 我可以选择将我的库分发为静态库(.a文件),也可以分发标头。我知道这是处理这种情况的常用方法,但是我想找到比这更简单的方法(如果可能的话,还要捆绑一些资源)。 我还发现iOS 7不支持动态.framework库(仅静态),因为它不支持动态链接。但是iOS 8以及静态链接都可以。 这是我对这些信息的疑问: 我看到我可以通过将Mach-O类型更改为“静态库”来创建一个.framework目标并将其设为静态。这足以支持iOS 7而不会出现任何问题,并且还可以将我的库作为.framework bundle?如果是,为什么Internet上的许多资源表明,iOS 8中的“嵌入式框架”这么重要呢? 是否需要像我对其他任何应用程序所做的那样对.framework进行代码签名? 如果我需要在.framework文件中包含其他资源(如核心数据或图像)怎么办?我需要为此制作一个单独的.bundle文件吗?

6
如何减少iOS AVPlayer启动延迟
请注意,针对以下问题:所有资产在设备上都是本地的-不会进行网络流传输。视频包含音轨。 我正在开发一个iOS应用程序,该程序要求以最小的延迟播放视频文件以启动有问题的视频剪辑。不幸的是,直到我们真正需要启动它之前,我们不知道接下来要播放的特定视频片段。具体来说:当播放一个视频剪辑时,我们将知道下一组(大约)10个视频剪辑是什么,但是直到确切地“立即”播放下一个剪辑时,我们才确切知道哪个剪辑。 要查看实际的启动延迟,我要做的是调用addBoundaryTimeObserverForTimes视频播放器,其时间为一毫秒,以查看视频实际开始播放的时间,我将时间戳记与指示开始播放哪个资产的代码。 从目前为止我所看到的,我发现使用AVAsset加载的组合,然后AVPlayerItem在准备好之后从中创建一个,然后AVPlayerStatusReadyToPlay在调用播放之前等待,通常需要1-3秒才能开始夹。 从那以后,我切换到了我认为大致相等的位置:呼叫[AVPlayerItem playerItemWithURL:]并等待AVPlayerItemStatusReadyToPlay播放。大致相同的性能。 我观察到的一件事是,第一个AVPlayer项加载比其他项慢。似乎有一个想法是,在尝试播放第一个视频之前,先用空/空资产预播AVPlayer,这可能是一种很好的常规做法。[ 第一次播放声音时,AVAudioPlayer的启动缓慢 我希望尽可能缩短视频的开始时间,并且对要尝试的事情有一些想法,但希望有可能提供帮助的人提供一些指导。 更新:下面的想法7的实现产生了大约500 ms的切换时间。这是一个改进,但是最好更快地完成。 想法1:使用N个AVPlayers(无效) 使用〜10个AVPPlayer对象并开始并暂停所有〜10个剪辑,一旦我们知道我们真正需要的剪辑,就切换到并取消暂停正确的剪辑,然后AVPlayer重新开始下一个循环。 我认为这行不通,因为我读过AVPlayer'siOS中的活动限制大约为4 。这里有人在StackOverflow上问这个问题,并发现了4 AVPlayer的限制:在视频之间使用avfoundation快速切换 想法2:使用AVQueuePlayer(无效) 我不相信,推搡10 AVPlayerItems到AVQueuePlayer会预载了他们全部无缝启动。 AVQueuePlayer是一个队列,我认为它实际上只能使队列中的下一个视频准备好立即播放。我不知道要播放约10个视频中的哪个,直到该开始播放为止。ios-AVplayer视频预加载 理念3:加载,播放和保留AVPlayerItems背景(尚未100%确定-效果并不理想) 我正在查看在后台加载和播放每个视频剪辑的第一秒(抑制视频和音频输出)是否有用,并保持对每个视频的引用AVPlayerItem,以及何时知道需要播放哪个项目真实,交换那个,并与活动的交换背景AVPlayer。冲洗并重复。 从理论上讲,最近播放AVPlayer/AVPlayerItem的可能仍会保留一些准备好的资源,从而可以加快后续播放的速度。到目前为止,我还没有看到任何好处,但是我可能没有AVPlayerLayer正确设置背景。我怀疑这是否真的会改善我所看到的情况。 想法4:使用其他文件格式-也许是加载速度更快的文件格式? 我目前正在使用.m4v的(视频MPEG4)H.264格式。H.264有许多不同的编解码器选项,因此某些选项的查找速度可能比其他选项更快。我发现使用更高级的设置来减小文件的大小会增加搜索时间,但没有找到其他选择的方法。 理念5:无损视频格式+ AVQueuePlayer的组合 如果有一种视频格式可以快速加载,但是文件大小可能很疯狂,则一个想法可能是,准备每个视频剪辑的前10秒,并准备一个肿但加载速度更快的版本,但返回然后用H.264编码的资产 使用AVQueuePlayer,并以未压缩的文件格式添加前10秒,然后再添加H.264中的文件,最多可准备10秒的准备/预加载时间。因此,我将两全其美:快速的启动时间,但也受益于更紧凑的格式。 想法6:使用非标准AVPlayer /自己编写/使用其他人的 考虑到我的需求,也许我不能使用AVPlayer,而不得不诉诸AVAssetReader,并解码前几秒钟(可能将原始文件写入磁盘),并且在播放时,请使用原始格式播放它快退。对我来说,这似乎是一个巨大的项目,如果我以幼稚的方式进行这项工作,目前尚不清楚/不太可能做得更好。每个解码和未压缩的视频帧为2.25 MB。天真地讲-如果我们以约30 fps的速度播放视频,我最终将需要约60 MB / s的磁盘读取速度,这可能是不可能的。显然,我们必须进行某种程度的图像压缩(也许是通过PVRTC进行的本机openGL / es压缩格式)...但这有点疯狂。也许那里有一个我可以使用的图书馆? 理念7:将所有内容合并到一个电影资产中,然后seekToTime 一个比上面的方法更容易实现的想法是,将所有内容组合到一部电影中,并使用seekToTime。问题是我们会到处乱跳。本质上是随机访问电影。我认为这实际上可以解决:avplayer-movie-playing-lag-in-ios5 您认为哪种方法最好?到目前为止,在减少延迟方面我还没有取得太大进展。
115 ios  delay  avplayer 

16
UICollectionView当前可见的单元格索引
我UICollectionView第一次在iPad应用程序中使用。我已设置UICollectionView其大小和单元格大小相同,这意味着一次只能显示一次单元格。 问题: 现在,当用户滚动UICollectionView时,我需要知道哪个单元格可见,我必须在更改时更新其他UI元素。我没有为此找到任何委托方法。我该如何实现? 码: [self.mainImageCollection setTag:MAIN_IMAGE_COLLECTION_VIEW]; [self.mainImageCollection registerClass:[InspirationMainImageCollectionCell class] forCellWithReuseIdentifier:@"cellIdentifier"]; [self.mainImageFlowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal]; [self.mainImageFlowLayout setMinimumInteritemSpacing:0.0f]; [self.mainImageFlowLayout setMinimumLineSpacing:0.0f]; self.mainImageFlowLayout.minimumLineSpacing = 0; [self.mainImageCollection setPagingEnabled:YES]; [self.mainImageCollection setShowsHorizontalScrollIndicator:NO]; [self.mainImageCollection setCollectionViewLayout:self.mainImageFlowLayout]; 我尝试过的 至于UICollectionView个符合UIScrollView,我当用户滚动两端UIScrollViewDelegate方法 -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 但是在上面的函数中,如何获取当前可见的单元格索引UICollectionView?

21
找不到React / RCTBridgeModule.h文件
在xcode上构建本机iOS应用程序时遇到此错误。 在npm install和rpm链接react-native-fs库之后,开始出现此错误。但是在网上搜索解决方案后,我注意到许多人在安装其他React Native库时遇到了相同的错误。 许多人建议的一种可能的解决方案是,在“构建设置”->“标题搜索路径”下添加以下内容。 $(SRCROOT)/../node_modules/react-native/React -(递归) 但是这种解决方案没有运气,仍然会出现相同的错误

10
获取React Native中ScrollView的当前滚动位置
是否可以获取当前滚动位置或<ScrollView>React Native中组件的当前页面? 所以像这样: <ScrollView horizontal={true} pagingEnabled={true} onScrollAnimationEnd={() => { // get this scrollview's current page or x/y scroll position }}> this.state.data.map(function(e, i) { <ImageCt key={i}></ImageCt> }) </ScrollView>

21
Swift框架:未找到伞标头'[…] .h'
在同时包含Objective-C和Swift代码的自定义框架中,Swift编译器会引发以下错误: [build_path]/unextended-module.modulemap:2:19: error: umbrella header 'bugtest.h' not found umbrella header "bugtest.h" ^ <unknown>:0: error: could not build Objective-C module 'bugtest'

18
如何使用iOS轻松调整大小/优化图像大小?
我的应用程序正在从网络下载一组图像文件,并将它们保存到本地iPhone磁盘。其中一些图像尺寸很大(例如,宽度大于500像素)。由于iPhone甚至没有足够大的显示屏来显示原始尺寸的图像,因此我计划将图像调整为较小的尺寸以节省空间/性能。 另外,其中一些图像是JPEG,因此不会保存为通常的60%质量设置。 如何使用iPhone SDK调整图片的大小,以及如何更改JPEG图像的质量设置?

4
如何创建自定义iOS视图类并实例化它的多个副本(在IB中)?
我目前正在制作一个具有多个计时器的应用程序,这些计时器基本上都是相同的。 我想创建一个自定义类,该类使用计时器的所有代码以及布局/动画,因此我可以拥有5个相同的计时器,它们彼此独立运行。 我使用IB(xcode 4.2)创建了布局,计时器的所有代码当前都位于viewcontroller类中。 我很难集中精力如何将所有内容封装到自定义类中,然后将其添加到视图控制器中,我们将不胜感激。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.