UIImageViews in UIScrollView - Bild ist versetzt

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • UIImageViews in UIScrollView - Bild ist versetzt

    Hallo Zusammen,
    Ich steh gerade vor einem Problem bei dem ich im Moment nicht weiterkomme.

    Grundsätzliches zur App: Die App stellt eine Präsentation dar. Mit einem DoubleTap wird eine scrollbare Übersicht der Slides aufgerufen in der ich hin und her scrollen kann und den anzuzeigenden Slide auswählen kann. Nun dies funktioniert auch soweit. Jedoch ist das Bild im UIImageView nach unten versetzt.

    Hier ein Screenshot dazu:
    Screenshot

    Hier das Coding indem ich die Bilder dem Scrollview hinzufüge:

    Quellcode

    1. - (void)viewDidLoad {
    2. [super viewDidLoad];
    3. // Do any additional setup after loading the view from its nib.
    4. // NSLog(@"numberOfSlides: %d",_imgCount);
    5. // NSLog(@"imgPath: %@",_imgFolderPath);
    6. NSInteger _kImgWidth = 300;
    7. NSInteger _kImgHeight = 225;
    8. //prepare ui
    9. _scrollView.pagingEnabled = NO;
    10. _scrollView.clipsToBounds = YES;
    11. _scrollView.contentSize = CGSizeMake(_kImgWidth, _kImgHeight * _imgCount);
    12. _scrollView.showsHorizontalScrollIndicator = NO;
    13. _scrollView.scrollsToTop = YES;
    14. //loading subviews
    15. for (unsigned j = 0; j<_imgCount; j++) {
    16. NSString *file = @"";
    17. NSInteger pageNumber = j+1;
    18. if (_imgCount >= 10) {
    19. if (pageNumber <= 9) {
    20. file = [NSString stringWithFormat:@"%@/Folie0%d.png",_imgFolderPath,pageNumber];
    21. } else {
    22. file = [NSString stringWithFormat:@"%@/Folie%d.png",_imgFolderPath,pageNumber];
    23. }
    24. } else {
    25. file = [NSString stringWithFormat:@"%@/Folie%d.png",_imgFolderPath,pageNumber];
    26. }
    27. CGRect frame = CGRectMake(0, 0, _kImgWidth, _kImgWidth);
    28. frame.origin.x = 0;
    29. frame.origin.y = _kImgHeight * j;
    30. UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(slideSelected:)];
    31. [tapGesture setNumberOfTapsRequired:1];
    32. [tapGesture setNumberOfTouchesRequired:1];
    33. UIImageView *img = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:file]];
    34. [img setUserInteractionEnabled:YES];
    35. [img setContentMode:UIViewContentModeScaleAspectFit];
    36. [img setGestureRecognizers:[NSArray arrayWithObject:tapGesture]];
    37. [img setTag:j+1];
    38. [img setAutoresizesSubviews:YES];
    39. [img setFrame:frame];
    40. [img.layer setBorderColor:[[UIColor grayColor] CGColor]];
    41. [img.layer setBorderWidth:1.0];
    42. [_scrollView addSubview:img];
    43. [img release];
    44. [tapGesture release];
    45. }
    46. }
    Alles anzeigen

    _scrollView ist via IBOutlet angebunden. _imgConut und _imgFolderPath sind auch properties und befüllt.

    Wie gesagt... Warum hat das Bild ein "Versatz" bzw. Offset? Besser gefragt: Wie krieg ich dieses Offset weg?

    cheers
    aofs
  • Wenn du als Höhe des Images Width angibst statt Height (Zeile 30) wird das wohl so sein ;)

    Ausserdem kannst du dir die If abfrage beim Filenamen sparen wenn du als Formatstring "Folie%02d.png" angibst.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)