У меня есть представление коллекции, в котором каждая ячейка содержит 7 кнопок (созданных с помощью кода, а не раскадровки).Button Image Quality Collection View
Они изначально острые, однако, если я прокручиваю вверх/вниз несколько раз, качество уменьшается.
Резкость восстанавливается при изменении вида и возврата.
Любые идеи?
Addit:
Я делаю кнопки, как это, в цикле (может быть от 1 до 7 кнопок)
- (UICollectionViewCell*) collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"patientCell";
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
Patient *aPt = [self.fetchedResultsController objectAtIndexPath:indexPath];
PatientCVCell *ptCell = (PatientCVCell *) cell;
ptCell.ptName.text = aPt.name;
ptCell.ptRoom.text = aPt.room;
ptCell.ptRx.text = aPt.diagnosis;
int xPos = 20;
NSArray *daysForRx = aPt.ofList.listDays;
// loop through to add button for each day of Rx
for (int i = 0; i < [daysForRx count]; i++) {
// get the treatment day that == postition in array
for (Treatment *t in aPt.patientRx) {
if (t.day == daysForRx[i]) {
//NSLog(@"%i", xPos);
StatusButton *testButton = [StatusButton buttonWithType:UIButtonTypeCustom];
testButton.frame = CGRectMake(xPos, 110, 28, 28);
testButton.btnTreatment = t;
// match status of the RX to the correct button
if ([t.status intValue] == NotSeen) {
[testButton setImage:[UIImage imageNamed:@"toSee"] forState:UIControlStateNormal];
testButton.linkNumber = NotSeen;
}
else if ([t.status intValue] == SeenNotCharted) {
[testButton setImage:[UIImage imageNamed:@"seenNotCharted"] forState:UIControlStateNormal];
testButton.linkNumber = SeenNotCharted;
}
else if ([t.status intValue] == SeenCharted) {
[testButton setImage:[UIImage imageNamed:@"seenCharted"] forState:UIControlStateNormal];
testButton.linkNumber = SeenCharted;
}
else if ([t.status intValue] == NotSeeing) {
[testButton setImage:[UIImage imageNamed:@"notSeeing"] forState:UIControlStateNormal];
testButton.linkNumber = NotSeeing;
}
else if ([t.status intValue] == NotSeeingDC) {
[testButton setImage:[UIImage imageNamed:@"notSeeingDischarged"] forState:UIControlStateNormal];
testButton.linkNumber = NotSeeingDC;
}
[testButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[cell addSubview:testButton];
xPos = xPos + 36;
}
}
}
return cell;
}
Изображения правильного размера поэтому нет необходимости масштабировать изображение.
Происходит в тренажере и на устройстве.
После более пристального обзора внутренняя часть изображений является резкой! Таким образом, эта проблема связана с прозрачностью формы круга в форме квадратной кнопки!
Просьба поделиться кодом, в противном случае его трудно понять, что происходит ... – Jailbroken
Проверьте свои методы 'UICollectionViewDataSource' и' UICollectionViewDelegate' и ваш подкласс 'UICollectionViewCell' для кода, который может привести к «размытию». Сначала я бы посмотрел на все вычисления CGRect. Убедитесь, что ваши изображения совпадают с фактическим пикселем. Вы должны использовать floorf(), roundf() или ceilf() для следующего пикселя (что означает 1 pt на сетчатке и 0.5 pt на сетчатке). Смотрите: http://stackoverflow.com/questions/8844092/uiimageview-loses-quality-after-panning –
попробовал и не повезло, я думаю, что это проблема памяти. Когда я прокручиваю свою память, использование медленно увеличивается - даже когда у меня есть пустой UICollectiveViewCell и нет содержимого. Проблема, кажется, в cellForRowAtIndexPath – DogCoffee