не работает правильно. проблема addSubview - PullRequest
1 голос
/ 03 июня 2010

Помоги мне. addSubview не работает. Я хочу добавить «ContentView» на scrollView. Но «ContentView» не появляется на экране. «ContentView» - это UIView.

Когда я переключаюсь на self.view = scrollView из [self.view addSubview: scrollView], addSubview не работает.

Пожалуйста, научите меня, как добавить UIView на этом экране !!

- (void)viewDidLoad {
[super viewDidLoad];

scrollViewMode = ScrollViewModeNotInitialized;
mode = 1;
imageViewArray = [[NSMutableArray alloc] init]; 
mainStatic = [[MainStatics alloc] init];    
[mainStatic setSetting];
NSString* path = [[NSBundle mainBundle] pathForResource:@"Files" ofType:@"plist"];      
NSArray* dataFiles = [NSArray arrayWithContentsOfFile:path];    
kNumImages = [dataFiles count]; 

CGRect frame = [UIScreen mainScreen].applicationFrame;
scrollView = [[touchClass alloc] initWithFrame:frame];
scrollView.delegate = self;
scrollView.maximumZoomScale = 5.0f;
scrollView.minimumZoomScale = 1.0f;
[scrollView setBackgroundColor:[UIColor blackColor]];
[scrollView setDelegate:self];
scrollView.delaysContentTouches=NO;
scrollView.userInteractionEnabled = YES;
[scrollView setCanCancelContentTouches:NO];

NSUInteger i;                                                   
for (i=0;i<[dataFiles count];i++)
{
    UIImage* image = [UIImage imageNamed:[dataFiles objectAtIndex:i]];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
    imageView.contentMode = UIViewContentModeScaleAspectFit;                
    imageView.userInteractionEnabled = NO;                                  
    CGRect rect = imageView.frame;                                          
    rect.size.height = 480;                                 
    rect.size.width = 320;                                      
    imageView.frame = rect;                                                 
    imageView.tag = i+1;                                                                       
            [imageViewArray addObject:imageView];
}

self.view = scrollView;

[self setPagingMode];
UIView* contentView;                                            
CGRect scRect = CGRectMake(0, 436, 320, 44);                    
contentView = [[UIView alloc] initWithFrame:scRect];
[contentView addSubview:toolView];                              
[self addSubview:contentView];                              

}

Ответы [ 2 ]

1 голос
/ 07 июня 2010

Я использовал массив изображений в следующей функции. toolView - это UIView с UIToolbar. Поэтому я хочу добавить панель инструментов на экран. Да, touchClass является подклассом UIScrollView. 1. Я вижу. Я забыл выпустить это. Спасибо. 2.OK. Я изменил это. Но «ContentView» не появился.

Есть ли другая причина?

- (void)setPagingMode {

    CGSize pageSize = [self pageSize];
    NSUInteger page = 0;
    for (UIView *view in imageViewArray){
        [scrollView addSubview:view];
        view.frame = CGRectMake(pageSize.width * page++, 0, pageSize.width, pageSize.height);
    }

    scrollView.pagingEnabled = YES;
    scrollView.showsVerticalScrollIndicator = scrollView.showsHorizontalScrollIndicator = YES;
    scrollView.contentSize = CGSizeMake(pageSize.width * [imageViewArray count], pageSize.height);
    scrollView.contentOffset = CGPointMake(pageSize.width * currentPage, 0);    
    scrollViewMode = ScrollViewModePaging;
}
0 голосов
/ 03 июня 2010

Источник не ясен. Вы никогда не используете массив с UIImageView. Там нет информации, что такое toolView и т. Д ... Пожалуйста, предоставьте более подробный источник. Является ли touchClass подклассом UIScrollView?

Что я заметил в вашем коде:

  1. Вы не выпускаете image и imageView. Все эти изображения imageViews будут пропущены. В конце цикла вы должны добавить [imageView release]; и [image release];
  2. Я не думаю, что это хорошая идея для отправки [self addSubview:contentView]; Попробуйте использовать [self.view addSubview:contentView];
...