Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Xcode 6中的大小类有问题_Ios_Objective C_Xcode_Size Classes - Fatal编程技术网

Ios Xcode 6中的大小类有问题

Ios Xcode 6中的大小类有问题,ios,objective-c,xcode,size-classes,Ios,Objective C,Xcode,Size Classes,我遇到了一个关于尺寸等级的非常奇怪的问题: 在size类any x any中,我有一个UITableViewController,它包含一个UIView,约束宽度为150,约束高度为150 在size类Regular x Regular中,我“卸载”了这些约束,并添加了另一个约束width&height,大小为250 当我在iPad上启动我的应用程序时,我可以看到此UIView的“正确”大小,但在我的代码中,在viewdiload和视图中,此视图的大小仍然是“150”。(我只想获取视图的大小

我遇到了一个关于尺寸等级的非常奇怪的问题:

  • 在size类any x any中,我有一个
    UITableViewController
    ,它包含一个
    UIView
    ,约束宽度为150,约束高度为150

  • 在size类Regular x Regular中,我“卸载”了这些约束,并添加了另一个约束width&height,大小为250

当我在iPad上启动我的应用程序时,我可以看到此
UIView
的“正确”大小,但在我的代码中,在
viewdiload
视图中,此视图的大小仍然是“150”。(我只想获取视图的大小)只有在函数
viewdide中出现了
我才有正确的大小,但我不明白为什么

有什么想法吗

示例代码:

- (void)viewDidLoad {
    [super viewDidLoad];

    [self loadImg];
    [self loadText];

    self.navigationItem.hidesBackButton = YES;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void) loadText {
    //
 }

- (void) loadImg {    
    self.myView.layer.cornerRadius = self.myView.frame.size.width / 2;
    self.myView.clipsToBounds = YES;
    UIView *svg = [Utils defineImg:self.myView :@"myImage" :50];
    [self.myView addSubview: svg];
    svg.center = CGPointMake(self.myView.frame.size.width / 2, self.myView.frame.size.height / 2);
}

所以我想你对尺码等级有点困惑。这和我的困惑是一样的

当您选择按RegularxRegular查看size类时,您只是在查看该模式下的外观。您在那里所做的任何更改都不会覆盖anyxany模式


您可能不应该在视图上约束宽度和高度。尝试使用与其他视图相关的约束,以使UIView在屏幕上看起来像它应该的样子。

viewDidLoad
viewwillbeen
不是查找特定框架尺寸的正确位置。框架将在自动布局完成后设置


您可以覆盖viewDidLayoutSubviews,并将其放到那里。

是的,我知道。但我为尺寸等级常规x常规添加了特定的约束。。。我不明白为什么我在iPad上看到这个视图的“正确”大小,但在我的代码中,我有AnyxANy大小的类:/RegularxRegular不会覆盖AnyxANy是什么意思……这不是重点吗?嗯,好的,但是我不明白为什么我在ViewDidLoad中的Any x Any size类中有我的视图的大小,而不是在常规x Regular中有我的视图的大小。。。而在我的ipad屏幕上,它是正确的…而且它不工作。。。在viewDidLayoutSubviews中,我再次使用了150 x 150而不是300 x 300。。。。看起来我只有在ViewDidExample中才有正确的大小,我不明白会发生什么…你能为你的视图控制器发布代码吗?你可能有一些打字错误。它必须在ViewDidLayoutSubViews中工作我只设置了一个日志:NSLog(“大小:%f-%f”,self.myView.frame.size.width,self.myView.bounds.size.width”);我看到的是“150”而不是“250”:/post-edited:),所以我尝试放置“[self-loadImg];“在viewdidlayout等中;在上一个日志中,没有任何功能…只有在ViewDidDisplay中。我遇到了相同的问题,在方法setNeedsDisplay中使用自定义UIImageView,我正在更改拐角半径,但为此我需要帧的宽度。我得到了错误的大小。我在Interface Builder中使用了大小类,BTWY您可以看到m'y last t关于这一点,有一个“解决方案”(确实不是最好的,但它是有效的)