UIView происхождение в подпредставлении - PullRequest
0 голосов
/ 28 января 2011

Я столкнулся с проблемой, которая сводит меня с ума ... Я знаю, что это должно быть простое исправление, но я не могу найти что-нибудь в Интернете (но! Возможно, ищет в неправильных местах).

У меня есть несколько кнопок, которые я помещаю в представление с помощью цикла:

//make the button smaller and position
        CGRect buttonFrame = button.frame;
        buttonFrame.size = CGSizeMake(41, 41);
        buttonFrame.origin = CGPointMake(10+(43*i), 415);
        button.frame = buttonFrame;

Это сработало великолепно ... но теперь я хочу добавить их в другое представление, и они исчезнут. Обидная строка кода:

buttonFrame.origin = CGPointMake(10+(43*i), 415);

Я полагаю, что это должно работать от координат self.view, а не от нового subview, содержащего кнопки. Нужен ли мне новый CGContext для супер просмотра.

Я пробовал что-то вроде:

 buttonFrame.origin = [newView CGPointMake(10+(43*i), 415)];

Но это вызвало всевозможные ошибки.

Спасибо за ваше время!

Ответы [ 2 ]

1 голос
/ 28 января 2011

Источником CGRect, который назначен в качестве кадра представления, является смещение, в котором представление будет размещено из его суперпредставления.

Таким образом, если вы используете CGRect (100, 100, 200, 200), представление будет на 100 пикселей правее от начала координат и на 100 пикселей южнее (также помните, что источник системы координат представления iOS находится в верхний левый угол) и имеет размер 200х200.

Ваша кнопка будет на 415 пикселей ниже локального источника (в верхнем левом углу) своего суперпредставления, что может сделать ее невидимой.

0 голосов
/ 28 января 2011

buttonFrame.origin = [newView CGPointMake (10+ (43 * i), 415)]; - эта строка кода не имеет смысла, потому что CGPointMake - это функция C, а не метод ObjectiveC, поэтому вы не можете опубликовать ее как сообщение объекту. Если вы хотите добавить подпредставление, вы должны использовать [newView addSuview: button]; и убедитесь, что вы добавили свой вид в другой вид.

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