gpt4 book ai didi

ios - 更改 UICollectionViewCell 中标签的颜色仅在一个单元格中生效?

转载 作者:行者123 更新时间:2023-11-29 02:25:27 29 4
gpt4 key购买 nike

简介
我在 mainViewController 中放置了一个 collectionView,每个 DailyCell(自定义 UICollectionViewCell 类)都有两个标签。我还有一个设置 View Controller ,它可以修改 mainViewController 的某些标签的颜色,包括通过 viewController (.Vc) 的共享实例(单例)在 collectionViewController 中的标签。设置 Pane 成功更改了所有其他标签的颜色,但 CollectionView 中仅存在两个单元格发生变化的标签除外。

代码
这是我的 mainViewController.m 中 collectionView 的代码:

#pragma mark - UICollectionViewDataSource

// 2
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
return 1;
}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
// 1
return MIN([[WXManager sharedManager].dailyForecast count], 6) + 1;
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
_cell = [collectionView dequeueReusableCellWithReuseIdentifier:DayCell forIndexPath:indexPath];
//Fetch Data
WXCondition *weather;
weather = [WXManager sharedManager].dailyForecast[indexPath.row];
averageWeather = (weather.tempHigh.floatValue +
weather.tempLow.floatValue)/2.0;
[_cell.labelTemp setText:[NSString stringWithFormat:@"%.0f°",
averageWeather]];

return _cell;
}

这是初始化两个标签的自定义 Daily Cell 类代码:

if (self) {
s = [Singleton sharedInstance];
s.Dc = self;
// Initialize Label Day
[self.labelDay setTextColor:[UIColor lightGrayColor]];
[self.contentView addSubview:self.labelDay];

// Initialize Label Temp
[self.labelTemp setTextColor:[UIColor lightGrayColor]];
[self.contentView addSubview:self.labelTemp];
return self;
}

这是设置中的部分,我尝试根据设置中选择的静态单元格来更改这两个标签的颜色(即,当在设置中点击此单元格时,将这些颜色应用于设置中的标签) View Controller ):

if ((indexPath.row == 1) && (indexPath.section==0)) {
//argentum
s.Dc.labelDay.textColor=[UIColor redColor];
s.Dc.labelTemp.textColor=[UIColor orangeColor];

}
if ((indexPath.row == 0) && (indexPath.section==0)) {
//album
s.Dc.labelDay.textColor=[UIColor lightGrayColor];
s.Dc.labelTemp.textColor=[UIColor lightGrayColor];
}

视觉支持
Only one changing问题
为什么只有一个细胞发生变化而其他细胞没有发生变化?

更新1
连续按下主题(有时)会逐步正确更新单元格标签。仍然不确定是什么原因造成的。

最佳答案

如果 indexPath.row 等于零意味着第一个元素被选中 (WED) 如果 indexPath.row 等于一那么你指的是第二个元素等等。您应该尝试一种方法:didSelectRowAtIndexPath

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {

s.Dc.labelDay.textColor=[UIColor redColor];
s.Dc.labelTemp.textColor=[UIColor orangeColor];

}

我不是很确定,请告诉我!

关于ios - 更改 UICollectionViewCell 中标签的颜色仅在一个单元格中生效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27608261/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com