小编Hap*_*eki的帖子

在版本或平台中禁用iOS选项(iTunes Connect)

我使用xcode将我的应用程序上传到App Store.我可以在iTunes连接上的现有应用程序中看到我的构建.但是,当我想使用"+版本或平台"选项添加构建时,它会显示一个禁用的iOS按钮:

我的构建版本是2.0.

在此输入图像描述

我收到Apple发来的一封电子邮件,说明该应用已完成处理.有什么理由我不能选择它吗?

itunesconnect app-store

21
推荐指数
2
解决办法
5531
查看次数

将UIViewController视图属性设置为不带有storyboard/nib的自定义UIView类

UIViewController有个叫LoginViewController.我想在一个自定义类中LoginViewController 完全以编程方式构建它的视图,而不是构建我的所有元素.这样我就阻止了Controller类(MVC)中的"View"代码.UIViewLoginViewLoginViewController

在下面的代码中,我LoginViewController将my 的视图设置为my LoginView,为简单起见,仅包含2UILabels

class LoginViewController: UIViewController {

override func loadView() {
    super.loadView()

    self.view = LoginView(frame: CGRect.zero)
}
Run Code Online (Sandbox Code Playgroud)

LoginView类初始化两个标签,并应设置一些约束.

class LoginView: UIView {

var usernameLabel: UILabel!
var passwordLabel: UILabel!


override init (frame : CGRect) {
    super.init(frame : frame)

    setupLabels()
}

convenience init () {
    self.init(frame:CGRect.zero)
}

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
}

private func setupLabels(){
    //Init labels and set a simple text
    self.usernameLabel = …
Run Code Online (Sandbox Code Playgroud)

uiviewcontroller uiview ios swift

14
推荐指数
1
解决办法
9167
查看次数

如何在快捷方式应用程序中自定义Siri快捷方式

如何在快捷方式应用程序中自定义Siri快捷方式?

这个问题与新的iOS 12功能有关:Siri Shortcuts.用户可以使用Siri快捷方式通过自定义语音短语或新的iOS 12"快捷方式"应用程序触发应用程序特定功能(由开发人员创建).快捷方式应用程序允许您通过组合应用程序的快捷方式来创建工作流程,类似于Mac上的Automator应用程序.

在我们的应用程序中,我们实现了特定功能的快捷方式 这意味着用户可以通过语音或快捷方式应用程序触发此快捷方式来执行此功能.我们的快捷方式在iOS的快捷方式应用程序中通过向Siri捐赠我们的意图来"自动".

问题是,如何自定义此快捷方式?默认情况下,我们的快捷方式如下所示:

在此输入图像描述

如您所见,快捷方式仅显示标签传输"X"到"X",并且不允许您配置此快捷方式.当我将我的快捷方式与其他应用程序的其他快捷方式进行比较时,我发现这些快捷方式是可配置的,就像来自应用程序"Giphy"的快捷方式:

在此输入图像描述

此快捷方式允许您配置"搜索","显示GIF选择器"和"选择多个".还要注意屏幕底部的变量,例如Ask When Run变量.

我找不到有关如何配置快捷方式的任何文档.在Apple(SoupChef)的示例代码中,它们也不提供可配置的快捷方式.

xcode siri swift sirikit sirishortcuts

8
推荐指数
1
解决办法
354
查看次数

从左到右平滑地重复动画

我正在尝试从左到右为 3 个方块设置动画。当它们从右侧消失时,方块应该从左侧重新出现。这个想法是正方形代表云,所以这个想法很清楚。

这是我目前得到的:

class ViewController: UIViewController {

    // contains the squares
    @IBOutlet weak var containerView: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)

        startAnimating()
    }

    func startAnimating() {
        UIView.animateKeyframes(withDuration: 10, delay: 0, options: .repeat, animations: {
            self.containerView.center.x += self.view.bounds.width

        }, completion: nil)
    }
}
Run Code Online (Sandbox Code Playgroud)

这是结果:

云

方块从左向右移动。这很好。问题是一旦动画完成,方块就会从它们开始的地方重新出现。这不是一个平滑的连续运动,即云从左向右移动,然后又从左慢慢重新出现。你如何做到这一点?应该有第二个 containerView 吗?或者删除 containerView 并为单个云设置动画?

答案米兰诺萨?解决了这个问题。一个注意事项:

我将 containerView2 放置在具有完全相同约束的 containerView1 之上(它们彼此重叠)。只要确保 IB 不包含 containerView2 作为 containerView1 的子视图。

uiview uiviewanimation ios swift

3
推荐指数
1
解决办法
3389
查看次数

UICollectionViewCell从自定义单元格获得不明确的高度

我使用Interface Builder 创建了一个非常简单UICollectionView的自定义文件UICollectionViewCell。我在GitHub上做了一个项目,因此您可以重现该问题。在UICollectionView模拟器上工作正常,但Xcode中不断报告错误:

“ DefaultCell预期:高度= 34,实际:高度= 150”。

Interface Builder的建议解决方案不能解决该错误。当我将UICollectionViewCell的类名更改为其他名称时,该问题有时会消失,但这只是暂时的。View Inspector或开发人员控制台中未显示其他错误。由于Interface Builder不知道单元格的正确大小,因此向单元格添加标签或图像变得困难。

请参阅下图以了解错误。

在此处输入图片说明

xcode ios uistoryboard uicollectionview uicollectionviewcell

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

是否仍然可以在 iOS 和 tvOS 之间共享 UserDefaults?

是否仍然可以在 iOS 和 tvOS 之间共享 UserDefaults?

在我的 Xcode 项目中,我用于UserDefaults在 iOS 目标和 tvOS 目标之间共享数据。UserDefaults当我尝试从我的 tvOS 应用程序取回数据时,我总是收到来自我的 nil 值。

这些是我共享数据所采取的步骤:

1:为两个目标添加应用程序组。两个目标使用相同的应用程序组 ID: group.nl.mycompany.myappname

我使用 .nl 域,但这应该没问题,因为这也适用于我的其他项目。

2:确认两个目标具有相同的部署目标。我尝试使用 10.0 和 11.0。

3:验证 myproject.entitlements 是否一切正常。

4:验证在 developer.apple.com 上为我的包标识符启用了应用程序组。

5:两个目标具有相同的包 ID。我还尝试使用 2 个不同的包标识符。

6:我UserDefaults从我的 iOS 应用程序写入的方式:

guard let defaults = UserDefaults(suiteName: "group.nl.mycompany.myappname") else { return }
defaults.set("Apple", forKey: "username")
defaults.synchronize()
Run Code Online (Sandbox Code Playgroud)

我通过获取如下值来确认这在我的 iOS 应用程序中有效:

guard let defaults = UserDefaults(suiteName: "group.nl.mycompany.myappname") else { return nil }
defaults.synchronize()
let name …
Run Code Online (Sandbox Code Playgroud)

nsuserdefaults ios swift tvos

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