UIImageView ile gerçekten çok tuhaf bir sorunum var. Görüntüye eklediğim bir görüntü (bir RGB png) 45x45 pikselim var. Görüntüye eklendikten sonra görüntünün bulanık olduğunu görebiliyorum. İşte (solda) simülatörde aynı görüntü ve Xcode (sağ):UIImageView neden bulanık?
- (id) initWithImage:(UIImage*) image {
self = [super initWithImage:image];
self.frame = CGRectMake(0, 0, 45, 45);
self.contentMode = UIViewContentModeScaleAspectFit;
self.quantity = 1;
if (self) {
self.label = [[UITextField alloc]initWithFrame:CGRectMake(0,40,45,25)];
self.label.font = [UIFont systemFontOfSize:16];
self.label.borderStyle = UITextBorderStyleNone;
self.label.enabled = TRUE;
self.label.userInteractionEnabled = TRUE;
self.label.delegate = self;
self.label.keyboardType = UIKeyboardTypeNumbersAndPunctuation;
self.label.textAlignment = UITextAlignmentCenter;
}
self.userInteractionEnabled = TRUE;
// Prepare 3 buttons: count up, count down, and delete
self.deleteButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
self.deleteButton.hidden = NO;
self.deleteButton.userInteractionEnabled = YES;
self.deleteButton.titleLabel.font = [UIFont systemFontOfSize:20];
self.deleteButton.titleLabel.textColor = [UIColor redColor];
[self.deleteButton setTitle:@"X" forState:UIControlStateNormal];
[self.deleteButton addTarget:self action:@selector(deleteIcon:) forControlEvents:UIControlEventTouchUpInside];
self.upCountButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
self.upCountButton.hidden = NO;
self.upCountButton.userInteractionEnabled = YES;
[self.upCountButton setTitle:@"+" forState:UIControlStateNormal];
[self.upCountButton addTarget:self action:@selector(addQuantity:) forControlEvents:UIControlEventTouchUpInside];
self.downCountButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
self.downCountButton.hidden = YES;
self.downCountButton.userInteractionEnabled = YES;
[self.downCountButton setTitle:@"-" forState:UIControlStateNormal];
[self.downCountButton addTarget:self action:@selector(removeQuantity:) forControlEvents:UIControlEventTouchUpInside];
return self;
}
böyle oluşturun:
alt text http://partywithvika.com/iconinsim.pngalt text http://partywithvika.com/iconinxcode.png
Bu initWithImage koduyla özel UIImageView sınıf var :
UIImage *desertIcon = [UIImage imageNamed:@"desert.png"];
IconObj *desertIconView = [[IconObj alloc] initWithImage:desertIcon];
desertIconView.center = CGPointMake(265,VERTICAL_POINT_ICON);
desertIconView.type = [IconObj TYPE_DESERT];
[self.view addSubview:desertIconView];
[desertIconView release];
Görüntülenen görüntü neden bir dosyada saklanan dosyadan daha çok olurdu?
Bu sorun muhtemelen ilgisi yoktur, ancak init metodu, 'öz = atama sonra eğer daha geleneksel olacağını [süper initWithImage: Görüntüyü]', denetlemek Kendinin sıfır olup olmadığı ve eğer öyleyse, hemen geri dönün. Eğer kendiliğinden geçilmezse, ya (1) ebeveynin başlatıcısı düzgün bir şekilde kendini başlatamazdı, ya da (2) bazı garip bellek durumundan dolayı (çok nadiren) geri dönen bir tahsis olabilir. İyi savunma programlama pratiği. –
Not için teşekkürler, bunu deneyeceğim. –