Как вставить представление в вид Superview? (IOS)

У меня есть строка кода ниже... Как бы я изменил ее, чтобы вставить подпредставление в представление суперпредставления с именем 'foo'?

[[self superview] addSubview:copy3];

4 ответа

Решение

Есть более 1 способа сделать это -

1. иметь IBOutlet ссылка в вашем коде. Это создано из Xcode Interface Builder. Если у вас есть это, то это довольно прямо -

[iboutlet_foo_object addSubview:copy3];

2.tag Представление, которое вас интересует. Снова пометить представление можно с помощью xcode Interface Builder или из кода. После этого -

Foo *fooObj = [[self superview] viewWithTag:tagInt];
[fooObj addSubview:copy3];

3. Наконец, вы можете перебрать все представления в вашем суперпредставлении и посмотреть, какой из них имеет тип Foo -

NSArray *subviews = [[self superview] subviews];
for(UIView *v in subviews)
{
    if(v isKindOfClass:[Foo class])
    {
        [v addSubview:copy3];
        break;
    }
}

надеюсь, что эти методы помогут вам...

Сначала сделайте myView в свойстве суперпредставления. Затем используйте

[[[self superview] myView] addSubview:mySubview];

Сначала пометьте представление myView уникальным номером:

myView.tag = 0x1234;

Тогда вы можете найти его, используя viewWithTag:

[[[self superview] viewWithTag:0x1234] addSubview:mySubview];

Вы можете просто добавить его в "представление" вместо "superview".

[[self view] addSubview:mySubview];

Это прекрасно работает для меня, когда я добавляю подпредставления в родительское представление. Дайте мне знать, если что-то пошло не так.

Другие вопросы по тегам