UIView setFrame проблема - PullRequest
       2

UIView setFrame проблема

6 голосов
/ 31 июля 2011

Я должен сделать что-то не так, но не знаю, что ..

Я пытаюсь добавить подпункт с этим кодом:

subMenuView = [[UISubMenuViewMainController alloc] init];

[subMenuView.view setFrame:CGRectMake(10,0,990,100)];

subMenuView.view.backgroundColor  = [UIColor whiteColor];

[self.view addSubview:subMenuView.view];

Я хочу, чтобы мой вид был в (10,0) и имел ширину / высоту 990/100

но я не получаю ожидаемого результата

Позвольте мне, если я ошибаюсь, Если я хочу квадратное представление 10x10 в центре, я должен добавить следующую строку:

[subMenuView.view setFrame:CGRectMake(512,384,10,10)];

Это не то, что я получаю, позиция правильная, но ширина / высота неправильные, есть идеи?

Ответы [ 4 ]

11 голосов
/ 22 декабря 2012

если вы используете autolayout, вызов setFrame бесполезен, попробуйте вызвать setTranslatesAutoresizingMaskIntoConstraints перед setFrame

7 голосов
/ 31 июля 2011

проблема устранена установкой

self.view.autoresizesSubviews = NO;
0 голосов
/ 31 июля 2011

Попробуйте использовать плавающие вместо целых:

[subMenuView.view setFrame:CGRectMake(10,0,990,100)];

до:

[subMenuView.view setFrame:CGRectMake(10.0f,0.0f,990.0f,100.0f)];
0 голосов
/ 31 июля 2011

Код немного нетрадиционный, но я рискну предположить, что это потому, что вы устанавливаете фрейм представления перед тем, как добавить его в качестве подпредставления. Следовательно, позиция подпредставления, вероятно, будет изменена с помощью layoutSubviews, прежде чем вы ее увидите.

Поэтому попробуйте поставить вторую строку кода последней и посмотреть, поможет ли это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...