UIView
을 UIcollectionviewcell
에 추가하는 것에 대한 질문이 있습니다. 나는 UIcollectionview
을 가지고 있으며, 조건이 참이라면 UIView
을 UIcollectionviewcell
에 추가해야합니다. 조건이 거짓이면 추가하지 않습니다. UIcollectionview
UIView
을 업데이트 한 후 Cell
에 추가되고 조건의 일부는 false입니다. UIView
을 UIcollectionviewcell
에 추가하는 방법은 무엇입니까? 하나, 둘 또는 세 UIView
셀을 추가 할 수 있습니다.UICollectionviewcell에 UIView 추가
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
NSInteger dayStart = [self dayWeekStart:[self getCurentDate:indexPath.section]];
CalendarCollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cellIdentifier" forIndexPath:indexPath];
if (indexPath.item+1 < dayStart) {
CalendarEmptyCollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cellemptyIdentifier" forIndexPath:indexPath];
return cell;
} else {
CalendarCollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cellIdentifier" forIndexPath:indexPath];
cell.titleLabel.text = [NSString stringWithFormat:@"%i",indexPath.item-dayStart+2];
int todayDayRowInt = todayDayRow;
int dayPlusShift = todayDayRowInt + dayStart - 2;
cell.titleLabel.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:15];
CALayer* layer = [cell layer];
[layer setCornerRadius:15];
dateFormatter.dateFormat = @"yyyy-MM-dd hh:mm:ss Z";
cell.titleLabel.textColor = [UIColor lightGrayColor];
dateFromString1 = [NSDate date];
dateFromString2 = [dateFormatter dateFromString:_dateFinish];
dateFromString3 = [dateFormatter dateFromString:_dateStart];
if ([self checkDateFromCalendar:indexPath.section row:indexPath.item + 3 - dayStart] == 1) {
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[arrColor removeAllObjects];
for (int i=0; i<appDelegate.selectPill.count; i++) {
Pill *arrPill = [appDelegate.selectPill objectAtIndex:i];
NSNumber *mDay = arrPill.manyday;
int mDayInt = [mDay integerValue]+1;
if ([[self sameDateByAddingMonths:[dateFormatter dateFromString:_dateStart] addMonths:indexPath.section addDay:indexPath.item + 3 - dayStart] compare:[self sameDateByAddingMonths:arrPill.start addMonths:0 addDay:mDayInt]] == NSOrderedAscending) {
NSDate *verifiableDate = [self sameDateByAddingMonths:[dateFormatter dateFromString:_dateStart] addMonths:indexPath.section addDay:indexPath.item];
NSDate *verifiableDate2 = [self sameDateByAddingMonths:[dateFormatter dateFromString:_dateStart] addMonths:indexPath.section addDay:indexPath.item+1];
NSTimeInterval diff = [verifiableDate timeIntervalSinceDate:arrPill.start];
NSTimeInterval diff2 = [verifiableDate2 timeIntervalSinceDate:arrPill.start];
yui = (diff2 - diff);
NSInteger sss = diff/yui;
if (diff >= 0) {
float fff = fmod (sss , ([arrPill.frequency doubleValue]+1));
if (fff == 0) {
NSArray *components = [arrPill.color componentsSeparatedByString:@","];
CGFloat r = [[components objectAtIndex:0] floatValue];
CGFloat g = [[components objectAtIndex:1] floatValue];
CGFloat b = [[components objectAtIndex:2] floatValue];
CGFloat a = [[components objectAtIndex:3] floatValue];
UIColor *color = [UIColor colorWithRed:r green:g blue:b alpha:a];
UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0+(i*10), (i*10), 10, 10)];
view.backgroundColor = [UIColor color];
[cell.contentView addSubview:view];
}
}
}
}
cell.titleLabel.textColor = [UIColor darkGrayColor];
} else {
cell.titleLabel.textColor = [UIColor lightGrayColor];
}
if ([dateFromString1 compare:dateFromString2] != NSOrderedDescending && [dateFromString1 compare:dateFromString3] != NSOrderedAscending) {
if (indexPath.section == todayMonthSection && indexPath.item == dayPlusShift){
cell.backgroundColor = [UIColor colorWithRed:60.0/255.0 green:162.0/255.0 blue:161.0/255.0 alpha:1];
cell.titleLabel.textColor = [UIColor whiteColor];
cell.titleLabel.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:15];
} else {
cell.backgroundColor = [UIColor whiteColor];
}
}
return cell;
}
return cell;
}
아래에 연결을합니다. – Alexey
왜 작동하지 않는지 더 자세히 설명해 주실 수 있습니까? 스토리 보드의 식별자에 "셀"이름을 지정 했습니까? numberOfItemsInSection 메서드가 0 개 이상의 항목을 반환합니까? YourView의 initWithFrame에서 중단 점을 설정하면 중단 점에 도달합니까? – Xuan
이 방법은 uiview를 모든 셀에 추가합니다. 조건과 함께 사용하면 작동하지 않습니다. – Alexey