标签: xcode-storyboard

使用Storyboarding的优点和缺点?

我已经写了一段时间的iOS应用程序,并逐渐从完全以编程方式的UI到集中使用Interface Builder.我现在正在考虑为我的一些新项目使用新的故事板功能,但我没有足够的经验或知识来计算这样做的优点和缺点. 任何人都可以提供一些关于何时使用Storyboarding以及何时浪费时间的示例或信息?

xcode cocoa-touch ios xcode-storyboard

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

如何以编程方式更改从故事板添加的约束?

我有一个屏幕.它将显示如下

在此输入图像描述

现在当用户点击我有一个帐户和密码(按钮)时,它将显示如下

在此输入图像描述

我想相应地移动两个视图我使用storyboard添加了约束.现在需要从编程中改变约束.

objective-c ios xcode-storyboard

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

无法将IBOutlet从storyboard连接到UIView子类

我可以右键单击并从我的自定义UIView子类文件拖动到storyboard元素以连接它们,但无法通过其他方式执行此操作.我相信这是一个Xcode错误.有什么办法可以解决这个问题吗?这不是第一次它已经发生并且令人讨厌.

我已经尝试过多次清理和重启Xcode而没有运气.

这不起作用 这不起作用(右键单击从故事板到Swift文件)

这有效 这是有效的(右键从swift文件的IBAction到故事板)

顺便说一下,我正在使用Xcode 8.1和Swift 3.0.

更新:我不是在寻找如何连接IBOutlets/IBActions的答案,因为正如我上面提到的那样(以及截图中),我已经能够连接它们并且应用程序运行良好.问题是更多关于为什么Xcode不允许我从Storyboard> Swift文件连接,但让我从Swift文件> Storyboard这样做.如果这个问题具有误导性,我很抱歉.

xcode interface-builder ios xcode-storyboard swift

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

故事板"Main",但在使用UITableViewController时没有获得UITableView

我一直在阅读本教程,"选项2:原型单元"我对所有步骤都表示赞同,但是,以下代码给出了一个错误:

@interface MTViewController : UITableViewController

@end
Run Code Online (Sandbox Code Playgroud)

错误消息是:

故事板"Main"中带有标识符"UIViewController-BYZ-38-t0r"的实例化视图控制器,但没有获得UITableView.

这是我试过的 - 我改变UITableViewControllerUIViewController,错误就消失了.但是,表格视图仍然是空白的.你能告诉我为什么会这样吗?

xcode uitableview ios xcode-storyboard

21
推荐指数
5
解决办法
3万
查看次数

用于识别iPhone 6和iPhone 6 plus肖像的尺寸等级

如何使用尺寸类别唯一识别iPhone 6和iPhone 6以及纵向屏幕?

我的应用程序在iPhone 4和iPhone 5中看起来不错,但由于屏幕尺寸的原因,iPhone 6和6中的空白空间相同.虽然使用自动布局我不能仅为iPhone 6和6加上单独增加字体大小或视图大小.我知道我们可以使用大小类来改变字体大小和视图大小.但在我的情况下,不知道该怎么做.

使用xCode 6.1和我的应用程序支持从iOS 7到最新的iOS 8.1.我希望只在故事板中使用解决方案,因为我在故事板中完全完成了我的UI设计.如果storyboard的功能有限以满足我的需求,请告诉我如何通过应用程序实现相同的代码?

ios xcode-storyboard xcode6 ios8

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

设置自定义NSView的backgroundColor

使用osx的故事板绘制到NSView的过程是什么?我已经在NSViewController中添加了一个NSView.然后,我添加了一些约束和插座. 在此输入图像描述

接下来,我添加了一些代码来改变颜色:import Cocoa

class ViewController: NSViewController {

    @IBOutlet var box: NSView!

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

    override func viewWillAppear() {
        box.layer?.backgroundColor = NSColor.blueColor().CGColor
        //box.layer?.setNeedsDisplay()
    }

    override var representedObject: AnyObject? {
        didSet {
        // Update the view, if already loaded.
        }
    } 
}
Run Code Online (Sandbox Code Playgroud)

我想做自定义绘图和更改NSView的颜色.我过去在iOS上进行过复杂的绘图,但我完全陷入困境.有谁看到我做错了什么?

nsview xcode-storyboard swift

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

如何在调用applicationDidBecomeActive时告诉活动视图控制器?

我觉得我在这里错过了一招

我只想在调用applicationDidBecomeActive时调用当前活动视图控制器上的viewDidLoad或viewDidAppear,这样当我再次从后台启动应用程序时,我可以重置一些动画或其他任何动画.我的一些观点并不关心,但其他人真的需要知道.

我正在使用Storyboards,我的app委托文件具有标准功能 - 但所有都使用EMPTY主体.例如,didFinishLaunchingWithOptions只返回YES而不执行任何操作.故事板自动完成我猜的一切.

那么如何从我相当空白,无信息的应用代表那里与当前的视图控制器进行通信?

iphone ios xcode-storyboard swift

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

您可以使用类别/扩展名向UIView添加IBDesignable属性吗?

对于那些不知道我在说什么的人,Xcode 6.0增加了新功能,IBDesignable和IBInspectable.

使用IBInspectable属性标记自定义视图时,这些属性将显示在IB中的"属性"检查器中.

同样,当您使用IBDesignable标记自定义UIView子类时,Xcode会编译您的视图并调用代码以在Xcode窗口中直接呈现视图对象,以便您可以看到它们的外观.

在自定义视图中添加IBDesignable和IBInspectable属性的技术在Swift和Objective-C中非常相似.IBInspectable属性显示在Interface Builder Attributes Inspector中,无论您使用哪种语言来定义它们.

我在Objective-C中创建了一个UIView类,并在Swift中创建了UIView的扩展,它将视图底层的borderWidth,cornerRadius,borderColor和layerBackgroundColor属性提升为视图的属性.如果更改属性,则扩展名/类别会根据需要键入转换,并将更改转发给图层.

IBInspectable部分运作良好.我看到并可以在IB属性检查器中设置新属性.

我可以在上周发誓,我的视图类别/扩展名上的IBDesignable属性也正常工作,我可以在IB中看到我的自定义UIView类别渲染,它具有更改的图层属性.本周它没有用.

我是产生幻觉的吗?

现有系统类的类别/扩展可以在使用IBDesignable设置时在Interface Builder中绘制自定义UI吗?

interface-builder ios xcode-storyboard ibdesignable ibinspectable

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

performSegueWithIdentifier vs instantiateViewControllerWithIdentifier

我似乎没有得到这个我不断得到的SIGABRT.我有这个故事板iOS应用程序,在故事板中我有一个UITableViewController.现在,我可以拿一个TVC的单元格并使其推动"segue"视图控制器,但是如果我需要在某些条件下停止"segue"动作呢?显然你不能,因为prepareForSegue:sender:方法不允许它,它似乎是转换即将执行时被调用的唯一回调.

所以我猜我可以进入tableView:didSelectRowAtIndexPath:并以编程方式执行segue.不是最理想的,但仍然......

好吧,事实证明我错了.或者至少,我做错了什么.最明显的方法是

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self performSegueWithIdentifier:@"TheOtherIdentifier" sender:self];
}
Run Code Online (Sandbox Code Playgroud)

但整个应用程序崩溃了一个SIGABRT,它没有提供任何有用的信息(是的,我确定是那条线让应用程序崩溃,我检查了调试器:)而且,VC我正在尝试加载已正确设置标识符,因为以下代码

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"TheOtherIdentifier"];
    [self.navigationController pushViewController:vc animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

"作品".引号表明这显然不是应该进行这种转换的方式.

现在:想法?

storyboard ios ios5 xcode-storyboard

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

Xcode 8 GM种子故事板布局问题

我已经尝试了XCode 8 GM种子,我在故事板中发现了一个严重的问题,要么你使用自动布局要么禁用它,Xcode 8搞砸了UIScrollView中包含的UIView,如下所示:

在此输入图像描述

在此输入图像描述

有线的事情是,如果我将嵌入式UIView调整到ScrollView中,退出Xcode并再次打开我的项目,那么UIView会再次变得更大,没有任何意义.

你遇到过同样的问题吗?

你认为苹果公司正式发布XCode 8这个大错误吗?

谢谢!

更新 不幸的是,即使是正式版的Xcode 8也有同样的问题:(

ios xcode-storyboard xcode8

16
推荐指数
2
解决办法
5261
查看次数