小编Jac*_*rse的帖子

如何为iOS和OS X编写通用swift代码.在cocoa中我可以使用#ifdef,我现在该怎么办?

对于我们的项目,我们总是为两个平台使用一个源文件:iOS和OS X.现在我正在迁移到swift.不幸的是,有一些文件需要

import Cocoa
Run Code Online (Sandbox Code Playgroud)

在iOS上

import UIKit
Run Code Online (Sandbox Code Playgroud)

以前我们做过

#ifdef __MAC_OS_X_VERSION_MAX_ALLOWED
#import <Cocoa/Cocoa.h>
#else
#import <UIKit/UIKit.h>
#endif
Run Code Online (Sandbox Code Playgroud)

你知道如何在swift中完成这项工作吗?我不喜欢每次写两次因为没有宏了.

提前致谢

插口

import macros preprocessor conditional-compilation swift

15
推荐指数
2
解决办法
2946
查看次数

如何使用 AVFoundation 或 AVAsset 在我的视频之上创建字幕?

我有一个使用合成和一些 AVAssets 的自定义播放器。一切正常。现在我想在我的视频上添加一些字幕。我在文档中读到,存在 mediaType“AVMediaTypeSubtitle”。是否有任何 Asset 或 AVAssetTrack 可以生成 TextOverlay,我可以将其插入到我的作品中以制作字幕?

cocoa-touch avfoundation ios4

5
推荐指数
1
解决办法
1842
查看次数

是否可以仅使用interfacebuilder在自动布局中并排对齐3个具有相同宽度的视图?

我根据自动布局有一个简单的问题。也许我错过了一些东西,但自从两个小时以来,我试图将 3 个视图彼此相邻且宽度相同。我的目标是每个视图使用 1/3 的屏幕。自动旋转后,所有视图都应具有相同的宽度,但所有相邻的视图应具有父视图的总宽度。

我的想法是这样的:

在此输入图像描述

以编程方式执行此操作很容易。是否可以仅使用界面生成器来解决此任务?

interface-builder ios autolayout xcode6

5
推荐指数
2
解决办法
2551
查看次数

如何以编程方式切换到Sprite Kit中的openGL以采用iPad2等旧设备

我正在使用Sprite Kit开发游戏.由于iOS9 SpriteKit使用Metal作为着色器后端.SK和着色器效果很好.但如果我在iPad2上进行测试,它就不再适用了.我已经读过这个问题并且知道iPad2不支持Metal.现在我想回到开放GL以在这种情况下提供GLES着色器.

我可以通过编程方式测试"Metal"是否可用(Swift 2):

    /**
     Returns true if the executing device supports metal.
     */
    var metalAvailable:Bool {

        get {

            struct Static {

                static var metalAvailable : Bool = false
                static var metalNeedsToBeTested : Bool = true
            }

            if Static.metalNeedsToBeTested {

                let device = MTLCreateSystemDefaultDevice()
                Static.metalAvailable = (device != nil)
            }
            return Static.metalAvailable
        }
    }
Run Code Online (Sandbox Code Playgroud)

我知道可以在应用程序的plist中设置兼容模式:

  • 编辑应用的Info.plist
  • 添加PrefersOpenGL键,bool值为YES

在这种情况下,SpriteKit总是使用openGL.这不是我想要使用的.我希望我的应用程序始终使用金属,如果没有检测到金属设备,则回退到openGL.

SpriteKit或UIKit中的任何选项,还是API中的某个地方,我可以通过编程方式切换到"PrefersOpenGL"选项?

提前致谢,

插口

shader opengl-es ipad-2 sprite-kit metal

5
推荐指数
1
解决办法
1093
查看次数