相关疑难解决方法(0)

如何在不使用Storyboard的情况下创建新的Swift项目?

在XCode 6中创建新项目不允许禁用Storyboard.您只能选择Swift或Objective-C并使用或不使用Core Data.

我尝试删除故事板,从项目中删除主故事板,并从didFinishLaunching手动设置窗口

在AppDelegate中我有这个:

class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow
var testNavigationController: UINavigationController

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {

        testNavigationController = UINavigationController()
        var testViewController: UIViewController = UIViewController()
        self.testNavigationController.pushViewController(testViewController, animated: false)

        self.window = UIWindow(frame: UIScreen.mainScreen().bounds)

        self.window.rootViewController = testNavigationController

        self.window.backgroundColor = UIColor.whiteColor()

        self.window.makeKeyAndVisible()

        return true
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,XCode给了我一个错误:

类'AppDelegate'没有初始值设定项

任何人都成功了吗?

ios swift xcode6

106
推荐指数
4
解决办法
7万
查看次数

以编程方式创建布局约束

我知道很多人已经就此问了很多问题,但即使有了答案,我也无法让它发挥作用.

当我在故事板上处理约束时,它很容易,但在代码中我很难.例如,我尝试使视图保持在右侧,并根据屏幕方向具有屏幕高度.这是我的代码:

UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 748)];
myView.backgroundColor = [UIColor redColor];
[self.view addSubview:myView];
[self.view addConstraints:[NSLayoutConstraint
    constraintsWithVisualFormat:@"V:|-[myView(>=748)]-|"
    options:0 metrics:nil
    views:NSDictionaryOfVariableBindings(myView)]];
Run Code Online (Sandbox Code Playgroud)

它不满足某些约束.我没有看到什么是错的.另外,为什么我不能像使用像self.myView本地变量这样的属性myView

constraints objective-c ios autolayout

84
推荐指数
5
解决办法
15万
查看次数

以编程方式添加CenterX/CenterY约束

我有一个UITableViewController,如果没有任何显示,它不会显示任何部分.我添加了一个标签,向用户表明此代码无法显示:

label = UILabel(frame: CGRectMake(20, 20, 250, 100))
label.text = "Nothing to show"
self.tableView.addSubview(label)
Run Code Online (Sandbox Code Playgroud)

但现在,我希望它在水平和垂直方向上居中.通常,我会在屏幕截图中选择突出显示的两个选项(加上高度和宽度的选项):

在此输入图像描述

我尝试了以下代码来添加约束但应用程序崩溃时出现错误:

label = UILabel(frame: CGRectMake(20, 20, 250, 100))
label.text = "Nothing to show"

let xConstraint = NSLayoutConstraint(item: label, attribute: .CenterX, relatedBy: .Equal, toItem: self.tableView, attribute: .CenterX, multiplier: 1, constant: 0)
let yConstraint = NSLayoutConstraint(item: label, attribute: .CenterY, relatedBy: .Equal, toItem: self.tableView, attribute: .CenterY, multiplier: 1, constant: 0)

label.addConstraint(xConstraint)
label.addConstraint(yConstraint)
Run Code Online (Sandbox Code Playgroud)

错误:

When added to a view, the constraint's items must be descendants of that view (or …
Run Code Online (Sandbox Code Playgroud)

xcode ios autolayout nslayoutconstraint swift

73
推荐指数
5
解决办法
8万
查看次数

Swift的UITableView示例

我已经和Swift和iOS合作了好几个月了.我熟悉许多方法,但我不够好,我可以不用看就写出来.我很欣赏Stack Overflow过去提供的快速答案,让我回到正轨,我已经生锈了(例如,AsyncTask Android示例).

iOS UITableView对我来说属于这一类.我已经完成了几次,但我忘记了细节.我在StackOverflow上找不到另一个问题,只是要求一个基本的例子,我正在寻找比许多在线教程更短的东西(虽然这个非常好).

我将在下面提供一个答案供我将来参考和你的.

uitableview ios swift

59
推荐指数
3
解决办法
14万
查看次数

在iOS上,边距,边缘插入,内容插入,对齐方式,布局边距,锚点​​之间有什么区别......?

似乎有几个不同的选项/术语,iOS社区中的人在布局方面使用(例如,UIEdgeInsets是一种类型,但有时我会听到/读取"设置插图"或布局边距与布局指南).

我总能找到一个有效的选项.但我不确定我是否正在使用合适的工具.

有人可以帮助在布局的这些不同方面之间提供一些清晰度,以及何时以最佳方式使用每个方面?

layout view ios autolayout nslayoutanchor

26
推荐指数
3
解决办法
4276
查看次数

具有可变单元格高度的UITableView:在IB中工作但不是以编程方式工作

TL; DR

我以编程方式创建的表格视图单元格未根据其自定义视图的内在内容高度进行大小调整,即使我正在使用UITableViewAutomaticDimension并设置顶部和底部约束.

问题可能在于我的UITableViewCell子类实现.请参阅下面的代码"无法以编程方式工作">"代码">"MyCustomCell.swift".

目标

我正在尝试为自定义蒙古语键盘制作一个建议栏.蒙古文是垂直写的.在Android中它看起来像这样:

在此输入图像描述

进展

我已经知道我应该使用一个UITableView可变单元格高度,从iOS 8开始可以使用.这需要使用自动布局并告诉表格视图使用单元格高度的自动尺寸.

我一直在学习的一些事情在我最近的SO问题和答案中有所体现:

所以我已经达到了支持内在内容大小的垂直标签.这些标签放在我的自定义表格视图单元格中.并且如下一节所述,它们在我在故事板中执行时起作用,但在我以编程方式创建所有内容时则不起作用.

在IB工作

为了隔离问题,我创建了两个基本项目:一个用于我使用故事板的地方,另一个用于以编程方式执行所有操作.故事板项目有效.从下图中可以看出,每个表格视图单元格都会调整大小以匹配自定义垂直标签的高度.

在此输入图像描述

在IB

我设置约束来固定顶部和底部以及使标签居中.

在此输入图像描述

ViewController.swift

import UIKit
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    let myStrings: [String] = ["a", "bbbbbbb", "cccc", "dddddddddd", "ee"]
    let cellReuseIdentifier = "cell"

    @IBOutlet var tableView: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()

        tableView.delegate = self
        tableView.dataSource = self

        tableView.estimatedRowHeight = 44.0
        tableView.rowHeight = UITableViewAutomaticDimension
    }

    // number of rows in …
Run Code Online (Sandbox Code Playgroud)

uitableview ios swift mongolian-vertical-script

25
推荐指数
2
解决办法
1311
查看次数

UIScrollView扩展内容的内部大小,直到高度X,然后滚动

我基本上试图重现警报的标题和消息部分的行为.

在此输入图像描述

标题和消息标签似乎位于滚动视图中.如果标签文本增加,则警报高度也随着标签的固有内容大小而增加.但在某个高度,警报高度停止增加,标题和消息文本变为可滚动.

我读过的内容:

用品

堆栈溢出

答案可能在那里,但我无法抽象它.

我尝试过的:

我只关注具有两个标签的滚动视图,我试图做一个最小的例子,其中父视图将根据scrollview的内在高度调整大小.我玩过很多限制.这是一个组合(许多)组合不起作用:

在此输入图像描述

我使用过自动布局正常约束,甚至内在的内容大小.此外,我知道如何使用自动布局获得基本滚动视图.但是,我从未做过任何关于优先级和内容拥抱以及抗压缩性的事情.从我所做的阅读中,我对它们的含义有一种肤浅的理解,但我不知道如何在这种情况下应用它们.我的猜测是我需要对内容拥抱和优先级做些什么.

uiscrollview ios autolayout intrinsic-content-size

17
推荐指数
2
解决办法
4037
查看次数

iOS - 使用storyboard和autolayout将UIScrollView居中

我正在使用故事板和自动布局创建iOS应用程序,以便在iPhone4和iPhone5上都能正常运行.下面是我使用故事板创建的视图的屏幕截图.

在此输入图像描述

在上图中,我想将滚动视图保持在superview的前沿和右表视图的中间.我不希望滚动视图在iPhone5中增加其宽度.我尝试了不同的约束组合,但我无法实现它.

有些人可能会建议我为滚动视图设置的所有约束是什么,以便它位于中心.

storyboard uiscrollview ios autolayout

12
推荐指数
2
解决办法
2万
查看次数

在swift中正确地对UITextField进行子类化

所以我有这些文本字段,我意识到它们都有相同的属性,所以我创建了一个名为" UserInputs "的新类并从中扩展UITextField,一切正常,除了一件事,UITextFieldDelegate函数不起作用,我的意思是当我专注于它们时它没有工作,我想在代码中添加它,因为当你专注于我的输入字段,他们改变边框,我如何正确地从子类UITextField

我唯一的问题是功能:

textFieldDidBeginEditing
textFieldDidEndEditing
Run Code Online (Sandbox Code Playgroud)

所以不起作用.

这是我的班级,一切都在发生:

import Foundation

import UIKit

class RegistrationViewController: UIViewController, UITextFieldDelegate {

@IBOutlet weak var firstName: UserInputs!
@IBOutlet weak var test: UserInputs!

override func viewDidLoad() {
    super.viewDidLoad()
    self.firstName.delegate = self
    self.test.delegate = self
}

}
Run Code Online (Sandbox Code Playgroud)

这是我的子类:

class UserInputs: UITextField{

required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)!
    createBorder()
}
func createBorder(){
    let border = CALayer()
    let width = CGFloat(2.0)
    border.borderColor = UIColor(red: 55/255, green: 78/255, blue: 95/255, …
Run Code Online (Sandbox Code Playgroud)

subclass uitextfield ios uitextfielddelegate swift

12
推荐指数
2
解决办法
2万
查看次数

在swift中以编程方式添加"Vertical Spacing"

我有一个UIImageView以编程方式添加的内容和一个已添加到Storyboard中的按钮.现在我需要在它们之间添加"垂直间距",但我不知道该怎么做.如果我UIImageView在故事板中添加会很容易:

在此输入图像描述

我该如何解决这个问题?

constraints ios swift

7
推荐指数
2
解决办法
1万
查看次数