Установить размер UIImageView? - PullRequest
3 голосов
/ 22 апреля 2010

У меня следующая проблема: я генерирую подпредставления UIView в UIScrollView, включая UIImageViews.

NSArray *bilder = [[NSArray alloc] initWithObjects:@"lol.jpg", @"lol2.jpg", nil];
NSArray *added = [[NSMutableArray alloc] init];
UIImageView *tmpView;

for (NSString *name in bilder) {
    UIImage *image = [UIImage imageNamed:name];
    tmpView = [[UIImageView alloc] initWithImage:image];
    tmpView.contentMode = UIViewContentModeScaleAspectFit;
    tmpView.frame = CGRectMake(0, 0, 300, 300);

    [added addObject:tmpView];

    [tmpView release];
}

CGSize framy = mainFrame.frame.size;

NSUInteger x = 0;

for (UIView *view in added) {
    [mainFrame addSubview:view];
    view.frame = CGRectMake(framy.height * x++, 0, framy.height, framy.width);
}

mainFrame.scrollEnabled = YES;
mainFrame.pagingEnabled = YES;
mainFrame.contentSize = CGSizeMake(framy.height * [added count], framy.width);
mainFrame.backgroundColor = [UIColor blackColor];

Я получаю имена файлов изображений из массива. Теперь я хочу изменить размер изображения до определенного размера, но это не сработает. любой совет?

спасибо + привет

Ответы [ 3 ]

4 голосов
/ 23 апреля 2010

UIImage не хватает setSize: метода NSImage, но этот пост , кажется, добавляет scaleToSize: метод с использованием категории на UIImage.

4 голосов
/ 23 апреля 2010

Измените tmpView.frame для использования нового CGRect:

tmpView.frame = CGRectMake(tmpView.frame.origin.x,
                           tmpView.frame.origin.y,
                           newWidth,
                           newHeight);
0 голосов
/ 23 апреля 2010

Я вижу следующее:

view.frame = CGRectMake(framy.height * x++, 0, framy.height, framy.width);

Но если вы посмотрите на CGRectMake ...

Declaration: CGRect CGRectMake (
   CGFloat x,
   CGFloat y,
   CGFloat width,
   CGFloat height
);

Вы устанавливаете значение X, а не значение Y.Я ожидаю, исходя из вашего последующего звонка:

mainFrame.contentSize = CGSizeMake(framy.height * [added count], framy.width);

, что вы намереваетесь сделать так, чтобы эти изображения появлялись друг на друга, а не рядом.

Предложить:

view.frame = CGRectMake(framy.height * x++, 0, framy.height, framy.width);

до

view.frame = CGRectMake(0,framy.height * x++, framy.height, framy.width);
...