如何在 Storyboard 中显示 UIView [关闭]
Posted
技术标签:
【中文标题】如何在 Storyboard 中显示 UIView [关闭]【英文标题】:How to display UIView in Storyboard [closed] 【发布时间】:2013-10-23 19:30:19 【问题描述】:我喜欢在情节提要中显示 uiview,因此我不必以编程方式进行设计。 我从旧版本的 XCode 中看到了一些教程,但它似乎不适用于 XCode 5。 我有什么问题吗?我基本上知道如何用代码实现它并展示它。
我看到您必须将 Size 设置为 FreeForm,然后您可以调整它并将其添加到其他视图中,就像在代码中一样。
顺便想开发一个ios 7 App。
提前致谢!
【问题讨论】:
您实际上尝试做了什么来完成这项工作? 因为我想为应用创建一个“模式”。所以我想基本上有一个小窗口,我可以随时显示和隐藏。我有一个类似测试的东西,其中有必要显示/隐藏 2 个不同的窗口,我不想在我的故事板中使用多个视图,因为这个过程重复了 10 次左右。我是 iOS 开发新手,所以也许有更多更好的解决方案 【参考方案1】:如果您使用故事板并设置了自动布局,那么您很难设置视图的大小。由于您只需要 UIView
来显示在您的故事板中,请尝试这种方法。
现在它会为您创建一个新的 xib。打开该 xib 并删除在界面生成器中看到的内容。现在将 UIView 拖到界面构建器上。您可以根据需要调整和修改它。当你需要它时,你可以做这样的事情
MyViewClass* myViewObject = [[[NSBundle mainBundle] loadNibNamed:@"MyViewClassNib" owner:self options:nil] objectAtIndex:0]
更新:
像这样创建你的视图 .h 文件
@interface CardView : UIView
@property (nonatomic, retain) IBOutlet UIButton *rating_btn;
-(IBAction)rating:(id)sender;
+ (id)cardView;
你的 .m 文件
+(id)cardView
CardView *cardView = [[[NSBundle mainBundle] loadNibNamed:@"CardView" owner:nil options:nil] lastObject];
if ([cardView isKindOfClass:[CardView class]])
return cardView;
else
return nil;
-(IBAction)rating:(id)sender
NSLog(@"Button pressed");
像这样在你的主视图控制器中使用这些
CardView *card = [CardView cardView];
[self addSubview:card];
确保您连接了 UIView 按钮。
【讨论】:
它就是这样工作的。但我希望它有按钮,只有数据显示。那么如何将 ViewController 连接到它呢?我尝试了正常的方式。添加文件并通过将类名写入身份检查器来连接它,但视图无法识别它。一般有没有办法做到这一点? 我尝试使用 UIWindow,但是当我显示它时它隐藏了主视图。 您不能将 UIWindow 用于您想要实现的目标。查看更新的答案 谢谢!你帮了我很多! 还有一个问题:为什么我需要 +(id)cardView 中的 if 语句?对于编译器来说,它是一个 CardView 不是很明显吗?以上是关于如何在 Storyboard 中显示 UIView [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
层的 UIView 的子层在 Storyboard 中显示为 @IBDesignable,但在模拟器中却没有
在 UIViewController Storyboard 中访问 UIView