2014-08-27 2 views
0

У меня есть пользовательский вид «BNRHyponsisView», который наследуется от UIView. Когда я добавил в список прокрутки, он просто исчезает, показывая мне цвет фона.Пользовательский вид исчезает после добавления его как subview в uiscrollview

Но UITextField, добавленный к нему, отображается просто отлично, и прокрутка работает отлично! Ссылки использовали сильные, и я все равно искал и не мог найти ответ!

- (void)loadView { 
    self.bhv = [[BNRHyponsisView alloc] init]; 

    CGRect frame = CGRectMake(40, 70, 240, 30); 
    UITextField *tf = [[UITextField alloc] initWithFrame:frame]; 
    tf.borderStyle = UITextBorderStyleRoundedRect; 
    tf.placeholder = @"Hypnotize me!"; 
    tf.returnKeyType = UIReturnKeyDone; 
    tf.autocapitalizationType = UITextAutocorrectionTypeDefault; 
    tf.autocorrectionType = YES; 
    tf.enablesReturnKeyAutomatically = YES; 
    tf.delegate = self; 
    [self.bhv addSubview:tf]; 


    UIScrollView *usv = [[UIScrollView alloc] init]; 
    usv.delegate = self; 
    usv.pagingEnabled = NO; 
    usv.minimumZoomScale = 1.0; 
    usv.maximumZoomScale = 2.0; 
    usv.contentSize = self.bhv.bounds.size; 
    [usv addSubview:self.bhv]; 

    self.view = usv; 
} 
+0

Что такое рамка self.bhv? и каков его цвет фона? – Mohit

+0

Рамка окна, по умолчанию. Он отлично работает. Если я устанавливаю его как вид * без прокрутки *, проблема в том, что когда я добавляю его в subview, он просто исчезает. –

+0

ОК. вы попробовали это [self.view addSubview: usv] ;? – Mohit

ответ

0

Вы пропустили установку фальшивого чувака.

self.bhv = [[BNRHyponsisView alloc] init]initWithFrame:CGRectMake(0, 0, 200, 300); 

self.bhv.backgroundColor = [UIColor orangeColor]; 

Но почему это показало UITextField?

Рамка BNRHyponsisView будет 0,0,0,0 (CGRectZero). Но она все еще там, но не видна вашим глазам. Очень крошечный (из-за 0). Но по умолчанию любой UIView не будет обрезать (clipToBounds) подвид, если вы создали их программно. Вот почему он показывает UITextField.

+0

Нет, все еще такая же проблема и фон все еще белый. –

+0

изменить цвет self.bhv.backgroundColor = [UIColor orangeColor]; on viewdidappear –

+0

Еще ничего. –

0

Попробуйте установить рамку и цвет фона для обоего

1. self.bhv i.e UIView 

    self.bhv = [[BNRHyponsisView alloc] init]initWithFrame:CGRectMake(0, 0, 300, 350); 
    self.bhv.backgroundColor = [UIColor redcolor]; 

    2. usv i.e UIScrollView 
    usv = [[UIScrollView alloc] init]initWithFrame:CGRectMake(0, 0, 400, 400); 
    usv.backgroundColor = [UIColor bluecolor]; 

Надеется, что это может помочь вам отладить проблему.

+0

Фон синий, но все еще нет BNRHyponsisView: /. –

+0

Есть ли какая-то конкретная причина, по которой вы унаследовали класс BNRHyponsisView из UIView? Попробуйте заменить его непосредственно UIView. – Utkarsha

+0

Custom drAwings –

Смежные вопросы