【问题标题】:How to deal with many views in one UIViewController如何在一个 UIViewController 中处理多个视图
【发布时间】:2014-02-23 18:16:58
【问题描述】:

我有一个拥有主视图的 ViewController。这个主视图包含另外两个视图,分别称为 leftView 和 rightView。

我希望在应用启动时隐藏这些“辅助”视图,我认为最好的方法是偏移 X 轴。

我想通过代码进行此偏移以使所有内容井井有条,但它不起作用 - 只有我在 Interface Builder 中执行此操作才有效!

我尝试了两件事,但都没有工作。

1:通过 AppDelegate:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    O_GViewController *mainController = (O_GViewController *)  self.window.rootViewController;
    [mainController leftView].frame = CGRectMake(-211, 20, 211, 548);
    [mainController rightView].frame = CGRectMake(320, 20, 320, 548);

    // Override point for customization after application launch.
    return YES;
}

2:通过 ViewController:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    //initialize secondary views
    leftView = [[UIView alloc]initWithFrame:CGRectMake(-211, 20, 211, 548)];
    rightView = [[UIView alloc]initWithFrame:CGRectMake(320, 20, 320, 548)];
}

两个“辅助”视图都与 ViewController.h 中的 *leftView 和 *rightView 绑定。

您知道如何通过代码完成这项工作吗?

谢谢

【问题讨论】:

    标签: ios cocoa-touch uiviewcontroller uikit


    【解决方案1】:

    在启动时隐藏两个视图的最简单方法是将它们的hidden 属性设置为YES。您可以在 Interface Builder 中执行此操作。

    如果您真的希望视图位于屏幕外,您当然可以这样做。但是,如果您使用自动布局(您几乎可以肯定),您不能通过设置它们的框架来做到这一点,因为自动布局只会根据约束再次设置它们的框架。你必须通过操纵约束来做到这一点。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    相关资源
    最近更新 更多