小编Tod*_*sco的帖子

在Storyboard中获取子视图的帧

我只想(现在)在视图控制器的实例化中获取子视图的尺寸.

[这是一个简单的案例,我可以找到前一个问题.我试图弄清楚为什么故事板中的场景的子视图不像我期望的那样表现,也就是说:像XIB一样 - 我只想在实际绘制到屏幕之前获取子视图的尺寸]

为了将问题压缩到一个新的,干净的项目,我这样做:

  • 选中"使用Storyboard"创建一个新的单视图项目
  • 将单个UIView添加到默认的现有MainStoryboard_iPad.storyboard(并将其背景更改为绿色以使其更容易看到 - 除了缩小尺寸之外,这是我从默认的UIView中拖动到场景中的唯一更改)
  • 选项 - 单击ViewController.h导航器中的文件,将其放在Storyboard框架下面的自己的框架中,并在@interface指令下面插入一对括号
  • 从故事板中的UIView进行控制 - 单击并拖动,ViewController.h并告诉它命名插座firstViewFirstSubView

所以我们现在有ViewController.h:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
{
    IBOutlet UIView *firstViewFirstSubView;
}
@end
Run Code Online (Sandbox Code Playgroud)

然后,我将此方法添加到ViewController.m:

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    NSLog(@"View Controller will appear. firstViewFirstSubView: %@ ", firstViewFirstSubView);
    NSLog(@"subView's dimmensions: %f by %f at %f, %f", firstViewFirstSubView.frame.size.width,
      firstViewFirstSubView.frame.size.height,
      firstViewFirstSubView.frame.origin.x,
      firstViewFirstSubView.frame.origin.y);
}
Run Code Online (Sandbox Code Playgroud)

此时,我希望能够获得UIView子视图的尺寸.但我得到全0:

2012-11-15 15:21:00.743 StoryboardViewBounds[11132:c07] View Controller will appear. firstViewFirstSubView: <UIView: 0x9379730; frame …
Run Code Online (Sandbox Code Playgroud)

xcode ios uistoryboard

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

标签 统计

ios ×1

uistoryboard ×1

xcode ×1