带有Interface Builder的iOS8自动调整静态TableView单元格

我很兴奋能够在Xcode中使用自动布局来支持dynamictypes的静态TableViews,如WWDC2014“表和集合视图中的新增function”中所述 。 我宁愿严格使用Xcode / Interface Builder和故事板来处理自动布局。 当我这样做,不知何故TableView单元格不会resize,我敢肯定,我错过了一些简单的东西。 为了重现这一点,使用Xcode 7 beta 5,我: 创build一个新的单一视图项目。 将Storyboard入口点设置为一个新的UITableViewController。 使其成为具有分组样式的静态表格视图。 第一行添加了一个标签。 顶部,底部,左侧和右侧增加了约束条件。 将标签字体设置为“正文”。 添加到ViewDidLoad: self.tableView.rowHeight = UITableViewAutomaticDimension; self.tableView.estimatedRowHeight = 44.0; 将其编辑并在“设置”中调整dynamictypes。 当字体改变时,TableView高度仍然停留在明显的默认值44,并截断标签。 这是一个GitHub仓库 ,这是上述的结果。 为什么不是自动布局导致TableView展开,以填补必要的空间,以适应新的更大的标签文本? 我已经find了关于这个主题的很好的post,比如下面的代码, 在这里使用代码来设置约束。 我没有发现在纯粹的Interface Builder中这样做的任何例子。 这当然很有可能吗? 更新 我已经更新了GitHub源代码,包括一个ImageView而不是UILabel的第二个表格行; 它显示了同样的问题: 此外,当我在标签或图像视图上设置明确的高度约束时,我生成以下内容。 这个问题似乎是这个“UIView-Encapsulated-Layout-Height”约束,我没有设置。 我猜这是生成的,因为在IB的静态tableview中,行高设置(默认)为44。 Unable to simultaneously satisfy constraints. … "<NSLayoutConstraint:0x7fa371f39e30 V:[UILabel:0x7fa371f38d30'Label'(20)]>", "<NSLayoutConstraint:0x7fa371c39160 UILabel:0x7fa371f38d30'Label'.top == UITableViewCellContentView:0x7fa371e17dc0.topMargin>", "<NSLayoutConstraint:0x7fa371c393c0 UITableViewCellContentView:0x7fa371e17dc0.bottomMargin == […]

MPMediaQuerysearch艺术家,专辑和歌曲

如何以与iOS音乐应用程序相同的方式searchiPod库? 我想进行一般查询,返回每个艺术家,专辑和歌曲的结果。 例如,如果我searchKenny Chesney,我希望歌曲查询返回所有Kenny Chesney歌曲(以及任何包含Kenny Chesney的歌曲标题或专辑)。当我为每个属性(歌曲标题,专辑标题,艺术家的名字),一个空数组返回。 下面是一些代码,可以让你更好地了解我正在尝试完成的任务: MPMediaPropertyPredicate *songPredicate = [MPMediaPropertyPredicate predicateWithValue:searchText forProperty:MPMediaItemPropertyTitle comparisonType:MPMediaPredicateComparisonContains]; MPMediaPropertyPredicate *albumPredicate = [MPMediaPropertyPredicate predicateWithValue:searchText forProperty:MPMediaItemPropertyAlbumTitle comparisonType:MPMediaPredicateComparisonContains]; MPMediaPropertyPredicate *artistPredicate = [MPMediaPropertyPredicate predicateWithValue:searchText forProperty:MPMediaItemPropertyArtist comparisonType:MPMediaPredicateComparisonContains]; MPMediaQuery *songsQuery = [MPMediaQuery songsQuery]; [songsQuery addFilterPredicate:songNamePredicate]; [songsQuery addFilterPredicate:artistNamePredicate]; [songsQuery addFilterPredicate:albumNamePredicate]; NSLog(@"%@", [songsQuery items]); 我有这个工作,通过与每个谓词分别运行查询,但这似乎是非常低效的!

我们应该使用哪一个CGImageAlphaInfo?

Quartz 2D编程指南定义了各种alpha存储模式的可用性: 我们应该使用哪些RGB上下文, 为什么 ? 对于不透明的上下文, kCGImageAlphaPremultipliedFirst或kCGImageAlphaPremultipliedLast ? 对于不透明的上下文, kCGImageAlphaNoneSkipFirst或kCGImageAlphaNoneSkipLast ? 价值的select是否影响绩效? 通常,我看到kCGImageAlphaPremultipliedFirst用于不透明,而kCGImageAlphaNoneSkipFirst用于不透明的上下文。 有些人表示这些performance更好,但我还没有看到有关这方面的任何确凿的证据或文件。 快速的GitHubsearch显示,开发者倾向于通过kCGImageAlphaPremultipliedFirst在kCGImageAlphaPremultipliedLast和kCGImageAlphaNoneSkipLast上执行kCGImageAlphaNoneSkipFirst 。 可悲的是,这仅仅是一个轶事证据。

从应用程序代表快速执行Segue

我需要从应用程序代理启动一个视图控制器。 在视图控制器之间执行segue的方式。 我有一个if语句,如果真的需要显示一个视图控制器,这是在应用程序委托。 我如何从应用程序委托做到这一点?

在SQLite中select语句来识别行号

我想写这样的SQLite语句: SELECT * FROM Table WHERE RowNumber BETWEEN 1 AND 10; 但是我没有这样的RowNumber列。 我在我的表中有主键。 但是,有没有行号默认情况下,我可以使用? 另外我正在search有关编写更复杂的SQLite语句的信息。 所以如果你在书签中有一些链接,请分享。 谢谢。

我应该在每个UIViewController中侦听可达性更新吗?

我看到很多Reachability示例,其中只有当可访问性状态更改时才显示消息。 但是最近,我在Foursquare的应用程序中看到,每当用户尝试进行需要Internet连接的操作时,他们都会显示一条消息。 我认为这是更强大和更好的用户体验提醒用户,他不能做任何事情,没有互联网。 主要是因为用户可以在应用程序之间切换,做别的事情,忘记他回来时没有任何联系。 另外,只要他们获得连接,我可以看到他们从互联网获取数据并刷新UI。 我真正想要的是做到这一点的最好方法。 这是怎么完成的? 他们有一个普遍的UIViewController,每次需要连接时都检查可达性吗? 或者,在每个互联网请求取消请求并显示消息之前,他们是否有一种代理类? 你们是怎么处理的? 谢谢。 编辑: 我提出的解决scheme是使用AFNetworking,它也提供了可达性状态。 基本上我创build了一个AFHTTPClient并设置一个可达性callback块来监听状态的变化。 AFHTTPClient对象是应用程序范围的(一种单例)。 (事实上​​,我有一个AFHTTPClient每个主机我需要达到a.com,b.com …)。 然后,当我需要执行一个请求时,我创build了一个新的AFHTTPRequestOperation(AFJSONRequestOperation,在我的情况下),并将其排入我的AFHTTPClient对象。 在操作的失败块中,我检查主机是否可以通过AFHTTPClient的networkReachabilityStatus属性访问。 如果无法访问,则显示一条消息,指示用户没有互联网连接。 我把它包起来,所以我不必每次创build一个操作就这样做。 所以现在在应用程序中,每当用户在没有连接的情况下尝试做某件事时,他都会记住他没有互联网接入的信息。 我也使用可达性callback来重新加载屏幕上的数据,一旦我得到连接(或更确切地说,我应该有一个连接)。 我不知道这是否是最好的做法,但我认为很高兴知道一旦有新的连接可用,应用程序将负责重新加载重要数据。 如果有人通过示例代码感兴趣,我可以提供。

iPhone的UIViewController进入状态栏

我有一个UIView和一个UIController视图。 我是标准的320×460视图。 在applicationDidFinishLaunching我做: [window addSubview:[controller view]]; 奇怪的是, UIView进入状态栏(就像缺less出口)。 但是,如果我将iPhone旋转到侧面,然后返回,则显示正常。 这是一个预期的行为(我敢打赌,我可以通过设置偏移量来解决)还是我做错了?

通用链接不适用于iOS10

刚更新我的iPhone到iOS10和通用链接停止工作。 如果我在iOS9或更低版本的iPhone上运行我的应用程序,通用链接工作正常,但在iOS10中根本不工作。 任何线索?

“无法下载应用程序。 目前无法安装<Appname>

我现在快死了 我一直在尝试约2-3周来解决这个问题,但仍然没有结果。 希望任何人都能够帮助我: 我正在用Titanium Studio编写iOS应用程序。 直到Mac OS X 10.6.8与Xcode 4.2一切工作得很好。 我完全可以在Xcode中构build应用程序,并将其部署在我们的企业内部。 现在我已经升级到OS X 10.8.2与Xcode 4.5,我们去…应用程序仍然可以build立,并可以在iOS模拟器上运行,但如果我现在尝试在某些设备上获得应用程序,我得到消息“无法下载应用程序。-Appname-目前无法安装” 。 这通过OTA发行和通过iTunes与USB电缆发生。 我search了几乎所有的互联网,但我发现一切都没有工作。 但是,如果我真的尝试通过Xcode部署应用程序,它虽然工作。 它与这些configuration文件和证书有什么关系? 我已经试图撤销他们等,但没有任何帮助。 我也安装了全新的OS X,以便我有一个干净的钥匙串。 同样的结果。 真的很感激任何forms的帮助。 谢谢!

我如何通过select器方法传递一个int值?

我想从我的select器方法传递一个int值,但select器方法只接受一个对象types参数。 int y =0; [self performselector:@selector(tabledata:) withObject:y afterDelay:0.1]; 方法执行在这里 -(int)tabledata:(int)cellnumber { NSLog(@"cellnumber: %@",cellnumber); idLabel.text = [NSString stringWithFormat:@"Order Id: %@",[[records objectAtIndex:cellnumber] objectAtIndex:0]]; } 但我没有得到确切的整数值在我的方法,我只获得id值。