Tag: xcode7

使用Sizes类调整iOS大小

大小类和自动布局可通过定义显示环境更改时屏幕,视图控制器和视图的布局应如何调整来帮助您满足渲染期望。 例如,Size类将帮助您定义当应用程序以横向放置在iPhone上时屏幕的外观,或者将应用程序显示在iPad或较小设备上时的外观。 我们可以为特定尺寸定义屏幕布局。 Size类只有两种类型的大小: 常规尺寸 o常规高度 o常规宽度 紧凑的尺寸 o紧凑的高度 o紧凑的宽度 我们拥有的所有iOS设备都属于上述类别。 此大小级别适用于设备,而不适用于它们具有的分辨率。 例如,所有处于纵向模式的iPhone都将具有“常规”高度和紧凑宽度。 让我们看一下网格以使其更容易。 现在,我们将看到来自Xcode的所有类别的屏幕截图 最佳做法是将屏幕设计为任意高度,任何宽度。 还要添加自动布局所需的所有约束,然后我们可以根据尺寸类别进行更改。 例如,如果我想在我的应用程序在iPhone上进入横向模式时删除标签栏,那么我将选择大小级别的紧凑高度和紧凑宽度。 然后,我将删除标签栏。 要从特定类中删除标签栏,我们需要使用“命令+删除”键盘快捷键,而不仅仅是“删除”。 这样,当您在iPhone上运行您的应用程序时,纵向将显示标签栏,而横向将不显示标签栏。 让我们创建一个带有工具栏和屏幕上图像的应用程序。 为了检查尺寸分类的工作方式,我们将删除工具栏并更改iPhone横向方向的图像高度,即“紧凑高度-紧凑宽度”。 让我们将屏幕设计为任意高度-看起来像任何宽度: 现在,我们将删除高度紧凑的工具栏-紧凑的宽度。 为此,我们将选择紧凑的高度-尺寸类别中的紧凑的宽度。 然后,我们将选择工具栏并使用“命令+删除”从紧凑高度(紧凑宽度)中删除工具栏。 删除高度紧凑的工具栏(宽度紧凑)后,它在文档轮廓中将显得褪色。 让我们更改图像的高度以获得紧凑的高度-紧凑的宽度。 为此,我们将选择屏幕上的图像并打开尺寸检查器。 然后单击图像的高度约束。 如下所示,您可以在常量附近看到“ +”号。 现在,我们将单击该加号,它将打开一个小菜单,我们需要在其中选择紧凑的高度-紧凑的宽度。 当我们处于紧凑高度(紧凑宽度)时,我们会将图像高度的常数设置为170。 如下所示: 我们完了。 让我们检查一下Xcode预览中的屏幕外观 正如我们所看到的,我们所做的所有更改都反映了紧凑的高度-紧凑的宽度iPhone 3.5英寸横向。 当我们更改图像的高度时,我们可以更改特定标签的字体大小,并且它将针对所选的大小类别反映出来。 希望这篇博客文章在使用自动布局设计应用程序时提供有关使用大小类的信息。 可以从这里https://github.com/prajaktak/iOSSizeClassDemo随意收集示例,并进行试用。

小部件,iOS 10,Xcode 7和大小

随着iOS 8的发布,Apple引入了Widgets 。 在iOS 9上,变化不大,我们所有应用程序的Widget使用率仍然很低。 iOS 10的推出Apple尝试将Widgets放在更多的焦点。 最大的更改之一(并且可能会破坏所有小部件的更改)之一是, 小部件现在可以具有两种模式: 紧凑和扩展 。 紧凑模式的固定高度为110px(据我所知 ),对于扩展模式,您可以像以前一样设置自己的首选高度。 苹果选择默认情况下实施紧凑模式 (我个人认为这是一个糟糕的选择,因为开发高度超过110像素的所有小部件都被切断了)。 另外,由于Xcode 8仍处于测试版,并且Apple不接受使用Beta版制作的版本,因此您还不能正式修复此问题。 那么该怎么办? 好了,我们可以尝试解决此问题:调用函数,设置属性并查看在iOS 10上会发生什么。 为此,我们首先创建了一个枚举“复制” Apple NCWidgetDisplayMode 在根窗口小部件视图控制器中,我们添加了一些方法,使我们可以“公开”新的枚举。 对于iOS 9及以下版本,我们回退到扩展模式,因为该模式的行为等同于当前的小部件行为。 这段代码本身并不能解决我们的问题。 我们的小部件保持紧凑模式。 它只允许我们为iOS 10进行“准备”并迁移到Swift 3.0。 为了使小部件进入扩展 模式, iOS需要再按一次(以下代码放置在loadView方法中)。 我们使用此代码构建了我们的应用,并将其提交给TestFlight,以便我们可以在iOS 10设备上运行它。 而且有效! Widget并非处于预期的100%状态,而是处于展开模式,但未显示少显示按钮。 这对我们来说不是损失,因为我们只使用了扩展模式 。 短时间内,我们尝试通过在根窗口小部件视图控制器中实现以下方法来解决此问题: 但这并没有改变。 之后,我们停止了,因为我们已经实现了想要的目标。 通过这种方式,我们的应用仍支持iOS 7(与Xcode 8不同),同时为我们的iOS 10用户提供了最佳体验。 注意:这仅适用于iPad,iPhone将默认返回紧凑模式。

将Xcode 7.3.1项目升级到Xcode 8.0

我想将我的Xcode 7.3.1项目升级到Xcode 8.我的项目是在Xcode 7中用swift 2.2编写的,但现在我想用swift 3.0升级到Xcode 8。 我的项目包含一些pod文件库,同时升级到Xcode 8,我面临着很多的警告和错误。 与故事板相关的警告已解决,但pod文件中的错误未解决。 Xcode告诉我把swift语法转换成最新的语法,所以我做到了。 Swift语法错误显示在pod文件中。 我正在尝试解决pod文件的swift语法错误,然后Xcode告诉我解开pod文件,我做了,但然后豆荚不工作。 有谁知道如何解决pod文件错误? 或者如何将整个Xcode 7.x项目转换为Xcode 8?

TableView选中的单元格 – 当标题滚动不见时检查标记消失,并检查新单元格

我有一个tableViewCell,在cellType的accessoryType中使用复选标记。 我有一个函数,将单元格的内容放入textField中,同样在文本字段未被选中时将其从文本字段中移除。 它似乎工作正常,但如果我检查一个单元格,并希望检查一个单元格不可见(IOW)我需要滚动tableView,被检查的单元格(现在不可见)似乎取消自己(只有当我检查一个新的可见细胞)。 多重select仅适用于可见细胞。 这是我的代码: func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier(textCellIdentifier, forIndexPath: indexPath) let row = indexPath.row cell.textLabel?.text = painArea[row] cell.accessoryType = .None return cell } func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { //selectedRow = indexPath tableView.deselectRowAtIndexPath(indexPath, animated: true) let row = indexPath.row let cell = tableView.cellForRowAtIndexPath(indexPath) if […]

UIViewController在Xcode 7中挂起

不知道是否标题是正确的,我打电话给newViewControllerbutton点击,但它没有渲染。 因为它在Xcode 6.4中工作正常,但是在Xcode 7中它挂起了UI,并且在pushViewController之后没有显示新的视图控制器。 这是在控制台上打印的错误日志 Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix […]

Xcode 7:'supportedInterfaceOrientations'实现中的返回types冲突:'UIInterfaceOrientationMask'vs'NSUInteger'

我只是更新了我的Xcode到版本7.0(7A220),不幸的是,我有几个问题。 让我列出这些: 现在这些images.xcassets 仅支持1x,2x,3x。 视网膜4 2x盒子仍然存在现有的图像,但你不能添加视网膜支持新的设置。 我该如何处理? 我的应用程序不再适用于iPhone 4 *和5 *。 图像消失:我只能看到文字(实际上只有启动屏幕图像的作品)。 我猜想,我可能有问题的iPhone 5 *(不再支持Retina 4),但我很惊讶iPhone 4 *(我曾经创build每个图像-480版本,并放在2x框内)。 这里同样的问题:我该如何处理? 我有几个警告:第一个是关于“更新到推荐的项目设置”(完成,但没有改变)。 第二个是在运行期间: ../ViewController.m:41:1: Conflicting return type in implementation of 'supportedInterfaceOrientations': 'UIInterfaceOrientationMask' (aka 'enum UIInterfaceOrientationMask') vs 'NSUInteger' (aka 'unsigned int') 第三个也在运行时: (null): Directory not found for option '-F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk/Developer/Library/Frameworks' 有人能帮我吗 ? 我使用Xcode 7.0(7A220)和SpriteKit来开发我的应用程序。

应用传输安全问题

我用最新的iOS SDK(9.2)运行xcode 7.2。 这里的苹果文件关于将使特定域上的ATS允许http请求的选项不再起作用。 请参阅附件图片: 即使我通过删除“ Exception Domains键来禁用ATS,并将“ NSAllowsArbitraryLoads YES设置为YES 。 请求仍然被阻止!? 任何想法?

2016年图标大小和名称?

什么是目前的图标大小和名称? 使用Xcode 7 示例启动集: iPhone3g : 320 x 480 iPhone4/4s : 640 x 960 iPhone5/5s : 640 x 1136 iPhone6 : 750 x 1334 iPhone 6plus : 1242 x 2208 ——————————- iPhone3g : 'Default.png' iPhone4/4s : 'Default@2x.png' iPhone5/5s : 'Default-568h@2x.png' iPhone6 : 'Default-667h@2x.png' iPhone6plus : 'Default-736h@3x.png'

强制在iOS9中缩放应用程序

我有一个应用程序,在iPhone 6我希望它按比例缩放和缩放。 基本上我想从设置模仿应用的ZOOM。 目前,当我从“设置”中使用“缩放”模式运行应用程序时,一切运行正常,但是当我从“设置”运行缩放时,显示的视图更小。 我该如何解决?

如何解决在mapKit Ios中使用的多余内存?

我使用mapKit,拖放它从故事板。 最初的内存使用是30.3mb,但一旦地图加载,它跳转到150,星星增加到500MB。我尝试实施提到的hotFix。 – (void)applyMapViewMemoryHotFix{ switch (self.mkMapView.mapType) { case MKMapTypeHybrid: { self.mkMapView.mapType = MKMapTypeStandard; } break; case MKMapTypeStandard: { self.mkMapView.mapType = MKMapTypeHybrid; } break; default: break; } [self.mkMapView removeFromSuperview]; self.mkMapView = nil; } 它什么都没做。 我把这个方法都叫做了,没有改变就会消失。 (请帮忙,现在已经坚持了一天以上了。最初由一些老兄在这里问了一下iOS6的MKMapView使用了大量的内存,到了崩溃的程序点,其他人都注意到了这一点 。