주된 뷰 컨트롤러에서 노란색 음영을 갖는 뷰를 삭제하려고합니다.핵심 데이터 : 핵심 데이터에 저장된보기를 삭제합니다.
숫자를 올바르게 등록하지만 삭제하지는 않습니다. (setNeedsDisplay를 호출하려고 시도한 뷰와 해당 행을 모두 업데이트하지는 않지만 작동하지 않습니다. 앱을 종료하면 업데이트되고 managedobjectcontext에는 저장되지 않지만 계속 유지됩니다. 보기에서. 내가 뭔가를 공개하지 않는 건가?) 만약 내가 그것을 가지고 그래서 그것은 단지 하나의 항목을 통과했다 .. 당신이 그것을 삭제하려면 클릭 .. 그것은 효과가 있었 겠지만 그림자와 함께 작동하지 않습니다. 왜 볼 수 있니?
업데이트 : 핵심 데이터 (페이지)에 저장된보기가 있으며 페이지를 선택하고 노란색 음영을 표시하고 싶습니다. 그림자를 추가 할 때 배열이나 무언가에 뷰를 추가 한 다음 삭제해야 할 때 뷰를 찾는 방법이 필요합니다.
-(void)trashitems{
for (NSString *itemKey in [itemViews allKeys]){
UIView<CollectionViewItemView> *itemview = [itemViews objectForKey:itemKey];
if ([itemview layer].shadowColor == [UIColor yellowColor].CGColor){
NSLog(@"remove %i",[[NSDecimalNumber decimalNumberWithString:itemKey] unsignedIntegerValue]);
if ([dataDelegate respondsToSelector:@selector(collectionView:canDeleteItemAtIndex:)]
&& [dataDelegate collectionView:self canDeleteItemAtIndex:[[NSDecimalNumber decimalNumberWithString:itemKey] unsignedIntegerValue]]
&& [dataDelegate respondsToSelector:@selector(collectionView:didDeleteItemAtIndex:)])
{
[itemViews release];
NSUInteger itemsCountBeforeDeletion = [dataDelegate countOfItemsInCollectionView:self];
[dataDelegate collectionView:self didDeleteItemAtIndex:[[NSDecimalNumber decimalNumberWithString:itemKey] unsignedIntegerValue]];
NSUInteger itemsCountAfterDeletion = [dataDelegate countOfItemsInCollectionView:self];
if (itemsCountBeforeDeletion - 1 != itemsCountAfterDeletion){
[NSException raise:@"Collection View Deletion Exception" format:@"Count of items in collection view before deletion (%u) must equal one more than count of items in collection view after deletion (%u) but did not.", itemsCountBeforeDeletion, itemsCountAfterDeletion];
}
}
}
}
}
귀하의 질문은 혼란 스럽습니다. UIView와 핵심 데이터를 제거하는 사이에 어떤 연결인지 알기가 어렵습니다. 또한 당신의'trashitems' 메소드는'removePageAtIndex'를 호출하지 않습니다. 그 반대도 마찬가지입니다. 그래서 어떻게 연결되어 있는지 분명하지 않습니다. 관리되는 객체 컨텍스트는 UIView를 제어하지 않으므로 실제로 여기에서 무엇을하려고합니까? –
부품을 잊어 버린 코드를 업데이트하려고 시도했지만 코어 데이터 (페이지)에 저장된보기가 있고 선택되었을 때 페이지를 삭제하고 노란 그림자가 나타납니다. – BDGapps
레이어의 음영 색상을 비교하는 것은 삭제할 데이터를 결정하는 나쁜 방법입니다. 모델 객체에'shouldDelete'와 같은 테스트 할 수있는 속성을 부여해야하며,이 속성을 사용하여 어떤 그림자 색상을 사용할 지 결정해야합니다. 현재 계획이 MVC를 명백히 위반하는 것 외에도, 이것이 잘못 될 수있는 방법이 너무 많습니다. '[UIColor yellowColor] .CGColor'는 항상 같은 CGColorRef를 반환합니까? 그래픽 시스템에서 지정하는 색상이 변경되지 않는다고 확신합니까? – Caleb