我使用表格向用户显示图书目录。有些书是免费的,其他书是高级书。我想根据用户的帐户状态(免费或高级版)通知用户可以下载的图书。用户仍然可以查看所有书籍(封面和摘要,但不能下载)。
为此目的,我试图为包含免费用户优质图书的单元格调暗。
我怎样才能使细胞变暗?我已经尝试过以前的答案,例如How do I make a UITableViewCell appear disabled?和UITableview: How to Disable Selection for Some Rows but Not Others,但没有运气。为什么alpha不起作用?
我的尝试朝着这个方向发展,没有结果:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"SelectBookCell";
SelectBookCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
cell = [[SelectBookCell alloc] init];
}
// Config images, title, author... information to show
Do stuff
// Dimmed premium books
if([[userAccount level] intValue] <= (NSInteger)[book objectForKey:@"level"])
{
[cell setAlpha: 0.2f];
cell.textLabel.alpha = 0.2f;
cell.detailTextLabel.alpha = 0.2f;
}
return cell;
}
答案 0 :(得分:1)
编辑:先试试吧!
cell.contentView.alpha = 0.2
而不是
cell.alpha = 0.2
我在我的项目上进行了测试,而后一个项目工作正常。
如果无效,请尝试以下操作。
我认为这一行有问题
if (cell == nil) {
cell = [[SelectBookCell alloc] init];
}
将其更改为
if (cell == nil) {
cell = [[SelectBookCell alloc] initWithNibName:@"SelectBookCell" bundle:nil]
}
请注意,xib文件名@“SelectBookCell”可能与您的项目不同。我不知道你的单元格是在storyboard或xib文件中。
答案 1 :(得分:1)
请在目标C中查看/阅读ItemsSource
转换easy_install
(类)和Type Casting
(基本类型)之间的区别。
这里有一个样本:
NSNumber
关于您的问题:
由于您使用的是默认视图NSInteger
&amp; NSLog(@"Wrong#1 : %@, Value: %d", (1 == ((int)@"1")) ? @"YES" : @"NO", ((int)@"1"));
NSLog(@"Wrong#2 : %@, Value: %d", (1 == ((NSInteger)@"1")) ? @"YES" : @"NO", ((NSInteger)@"1"));
NSLog(@"Wrong#3 : %@, Value: %d", (1 == ((NSInteger)@1)) ? @"YES" : @"NO", ((NSInteger)@1));
NSLog(@"Wrong#4 : %@, Value: %d", (1 == ((int)@1)) ? @"YES" : @"NO", ((int)@1));
NSLog(@"Correct#1 : %@, Value: %d", (1 == [@"1" intValue]) ? @"YES" : @"NO", [@"1" intValue]);
NSLog(@"Correct#2 : %@, Value: %d", (1 == [@"1" integerValue]) ? @"YES" : @"NO", [@"1" integerValue]);
我确定您必须使用.textLabel
。
.detailTextLabel
希望这有用...干杯。