UIImageView Bild anzeigen, out of bounds in einem UICollectionViewCell sub-Klasse

Ich habe ein anpassen UICollectionViewCell zu zeigen, ein Bild und einen Namen für das Bild, Und oben auf dem Bild, es ist ein Bild 2 Pixel größer in der Breite und Höhe als die Bild. Jedoch, egal was ich mache, das Bild scheint größer zu sein, als das Bild mit dem Rahmen. Ich Tat das gleiche für die Tabelle ansehen, und es funktioniert perfekt.

Hier ist der code:

//GridCell.h

@interface GridCell : UICollectionViewCell
@property(nonatomic, strong) UILabel *lblName;
@property(nonatomic, strong) UIImageView *image;
@end

//GridCell.m

#import "GridCell.h"

@implementation GridCell

@synthesize image, lblName;

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        //Initialization code

        UIImage *bg = [UIImage imageNamed:@"borderUIimgLg.png"];

        UIImageView *bgImage = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, frame.size.width, frame.size.width)];
        [bgImage setImage:bg];
        [bgImage setContentMode:UIViewContentModeScaleAspectFill];
         NSLog(@"BG Image size %f, %f", bgImage.frame.size.width, bgImage.frame.size.height);


        UIImageView *contentImage = [[UIImageView alloc] initWithFrame:CGRectMake(2.0, 2.0, frame.size.width-4.0, frame.size.width-4.0)];
        [contentImage setContentMode:UIViewContentModeScaleAspectFill];
        [contentImage setClipsToBounds:YES];
        self.image = contentImage;

        [self.contentView addSubview:self.image];

        [self.contentView addSubview:bgImage];

        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(2.0, frame.size.width, frame.size.width - 4.0, 21.0)];
        [label setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:11.0]];
        [label setTextAlignment:NSTextAlignmentCenter];
        [label setBackgroundColor:[UIColor clearColor]];
        self.lblName = label;
        [self.contentView addSubview:self.lblName];
    }
    return self;
}

Den UICollectionViewCell hat eine Größe von 67 x 100, also im code, die bgImage soll immer 67 x 67 und sein Ursprung (0,0) und die contentImage haben soll, einen Rahmen (0,0,63,63). Durch Debuggen, es scheint korrekt zu sein. Jedoch, die conentimage immer größer als die bgImage. Die original-Größe des Bildes ist 80 x 80 obwohl. Ich habe versucht setClipToBounds,
setContentViewMode, entweder in der Zelle.ContentView oder der Bildansicht, aber keiner funktioniert.

Einen screenshot zu dem problem verbunden ist.UIImageView Bild anzeigen, out of bounds in einem UICollectionViewCell sub-Klasse

Jede Hilfe ist willkommen.

  • Ich habe auch versucht, das layout und alle Elemente in eine Feder und in die storyboard-und die gleichen Ergebnisse erhalten.
InformationsquelleAutor Zhao | 2012-10-05
Schreibe einen Kommentar