- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经为单元格创建了一个自定义的 UITableViewCell
和一个类。然后我将我的 viewController 中的这个单元格加载到 TableView 中。自定义单元格有一个标签和一个 UiSwitch。我已经设法让开关按我想要的方式工作,并更改了需要更改的值。
我现在想要在 UITableView
之外有一个单独的 UISwitch - 当它打开时 - UITableView 中的所有开关都打开。
出于某种原因,我无法让它工作。
这是自定义单元格的代码:
- (void)selectAllSwitches:(BOOL)selected
{
if (selected){
[self.selectSwitch setOn:YES animated:YES];
}else{
[self.selectSwitch setOn:NO animated:YES];
}
}
-(void)setMaillist:(BBMailList *)aMaillist
{
maillist = aMaillist;
if (maillist){
self.nameLabel.text = maillist.name;
if (self.maillist.isSubscribed){
self.selectSwitch.on = YES;
}else{
self.selectSwitch.on = NO;
}
}
}
- (IBAction)switchControl:(UISwitch *)sender
{
self.maillist.isSubscribed = !self.maillist.isSubscribed;
NSLog (@"IsSubScribed: %ul", self.maillist.isSubscribed);
if (self.maillist.isSubscribed){
self.selectSwitch.on = YES;
}else{
self.selectSwitch.on = NO;
}
}
然后在 cellForRowAtIndexPath 中:
static NSString *mailListTableViewCellIdentifier = @"BBMailListTableViewCell";
if (tableView == self.maillistTableview ){
BBMailListTableViewCell * maillistTableviewCell = [self.maillistTableview dequeueReusableCellWithIdentifier:mailListTableViewCellIdentifier];
if (!maillistTableviewCell){
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:mailListTableViewCellIdentifier owner:self options:nil];
maillistTableviewCell = nib[0];
}
if ([self.mailLists count ] > 0){
NSMutableArray *newArray = [NSMutableArray arrayWithArray:self.mailLists];
[newArray removeLastObject];
[newArray removeLastObject];
[self.maillistTableview setContentSize:CGSizeMake(320, 400)];
BBMailList *maillist = newArray[indexPath.row];
maillistTableviewCell.maillist = maillist;
}
return maillistTableviewCell;
}
此代码按我的需要工作。
然后我在 viewController 中为 tableView 之外的 UISwitch 创建了一个 IBAction 方法
- (IBAction)selectAllSwitch:(UISwitch *)sender
{
BBMailListTableViewCell *switchButton = [[BBMailListTableViewCell alloc]init];
[switchButton selectAllSwitches:YES];
}
这会在我的 UITableViewCell 类中运行正确的方法 - 但 UITableView 不会反射(reflect)更改。我添加了 [self.myTableView reloadData];
- 但这并没有解决问题。任何人都可以为我阐明一些不是他的光吗?
****更新****
更新了 UITableView 之外的 UISwitch 代码
- (IBAction)selectAllSwitch:(UISwitch *)sender
{
BBMailList *tempMailList = [[BBMailList alloc]init];
tempMailList.isSubscribed = YES;
[self.maillistTableViewCell setMaillist:tempMailList];
[self.maillistTableViewCell selectAllSwitches:YES];
[self.maillistTableview reloadData];
}
每个 mailistItem 都是我用来存储数据的 NSObject。上面的代码运行了正确的方法——但似乎我没有保持状态 maybe and when [self.mayTableView reloadData];运行 - 它将 tableview 数据重置为原始状态?
最佳答案
解决问题的逻辑是:
1) 从您的代码看来,开/关功能取决于您的 maillist.isSubscribed
属性。在 View Controller 的 IBAction
中,将其设置为 true
。
2) 在这个IBAction中调用[self.myTableView reloadData];
。因此,一旦表加载单元格,数组的元素将帮助将开关设置为开/关。
希望对您有所帮助!
编辑
你好像迷路了。因为在 viewController 的 IBAction 中,您正在创建类型为 BBMailList
的新数组。像这样尝试:
假设您的 self.mailLists
是 BBMailList
类型的集合。
现在:
- (IBAction)selectAllSwitch:(UISwitch *)sender
{
// loop through each array element set it to true.
for (BBMailList *tempMailList in self.mailLists)
{
tempMailList.isSubscribed = Yes;
}
// reload table data so once table
[self.maillistTableview reloadData];
}
并在 cellForRowAtIndexPath
中更改您的邮件列表设置,如下所示:
if ([self.mailLists count ] > 0){
NSMutableArray *newArray = [NSMutableArray arrayWithArray:self.mailLists];
[newArray removeLastObject];
[newArray removeLastObject];
[self.maillistTableview setContentSize:CGSizeMake(320, 400)];
BBMailList *maillist = newArray[indexPath.row];
[maillistTableviewCell setMaillist: maillist]; // <--- Changed this line
}
关于ios - 在自定义 UITableViewCell 中控制 UISwitch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21670419/
案例:我有 2 个 UISwitch - Switch1 和 Switch2。Switch1 控制场景中 UILabel 的可见性。Switch2 激活后关闭 Switch1 及其可见性。 问题:激活
我基本上有两个切换按钮,我希望用户从两个播放器或组播放中进行选择。但是,我不希望用户能够在用户单击其中一个时理想地选择这两个,而另一个则关闭。如何最好地实现这一点? -(void)stateSwi
我正在开发一个应用程序,其中有一个 UISwitch(switch1) 控制其他 UISwitches(开关 2-5)。如果开关 1 打开,则开关 2-5 关闭并禁用。如果 switch1 关闭,sw
我在同一 View 上有多个 UISwitch。在我的表单上,我需要使用 UISwitch 像单选按钮(网络)。不能同时打开超过一个 UISwitch,我只需要一个。 如果一个 UISwitch 打开
我有 11 行或更多行。只需要在第一个单元格中创建一个 UISwitch。当我单击任何行时,UIswitch 会重复。 UITableViewCell *cell = [tableView dequ
我在 PFTableView 中使用 UISwitch。当我打开一个 UISwitch 时,它会触发不同单元格中的另一个开关。下面是 PFTableViewCell 的代码。 override fun
我有一个 UITableView,其中我以编程方式为某些单元格添加了一个 UISwitch 作为 accessoryView。对于委托(delegate)方法didSelectRowAtIndexPa
如何获取给定 iOS 的默认 UISwitch 缩略图图像/阴影等?我正在构建自己的自定义 UISwitch,并希望我创建的拇指 ImageView 看起来与默认 UISwitch 相同。 最佳答案
我有两个 UISwitch....当第二个打开时我需要关闭第一个当第二个关闭时也打开第一个...... 同样,当第一个打开时,第二个将关闭,副varca... 有什么想法吗? 最佳答案 为两个开关添加
是否可以将图像添加到 UISwitch 背景,例如当状态为 ON 时(作为一个背景)和当状态为 OFF 时(另一个背景图像)? 最佳答案 要更改背景颜色(不是图像),您只需执行以下操作即可。这会更改领
我需要实现一个 View ,我需要用户使用"is"或“否”回答几个问题。我想过使用 UISwitch,但据我所知,它不允许用 YES/NO 替换它显示的 ON/OFF 消息。我错了吗? 我想过实现一个
我可以使用下面的代码更改 UISwitch 的颜色,但颜色始终为黄色,如何将颜色更改为另一种颜色? UISwitch *switch1=[[UISwitch alloc]initWithFrame:C
我有一个 UISwitch我把它放在我的 Storyboard 中并将它连接到我的实现文件中的 socket ,并连接了valueChanged:控制事件“值已更改”的方法。但是,仅当我将其从关闭切换
我想让 UISwitch 周围的触摸区域每边大 10 个点。查看相关帖子 (UIButton: Making the hit area larger than the default hit area
我正在开发一个具有 UISwitch 的应用程序。我想以编程方式将开关设置为开/关。我是这样试的,但是当setting时开关已经打开了是 false ... 有任何想法吗? @IBOutlet var
当用户打开开关时,我希望在 UILabel 上显示一个随机值,然后采用相同的随机值,并用它相乘并找到另一个值。我认为我的问题是我尝试使用 let 语句来保存该值,然后尝试从另一个函数回调该 let 值
我的 View Controller 上有一个 UISwitch,所以当我切换它时,按钮的文本会发生变化。我第一次将其关闭和打开时不起作用,但是如果您第二次尝试它,它就会起作用...我的代码中是否缺少
这可能看起来很傻,也许我理解不正确。 我的场景中有一个 UISwitch。 when a login button is clicked if the switch is on - do
我在我的应用程序中使用了 UISwitch 和 valueChanged 目标,如下代码所示。这个开关在我的 UITableView 中 settingsTableCell.androidSwitch
首先是我的 .h 文件: @interface SettingsViewController : UIViewController { IBOutlet UISwitch *gravaSwi
我是一名优秀的程序员,十分优秀!