UITableViewCell 中的 ios 滑块操作
Posted
技术标签:
【中文标题】UITableViewCell 中的 ios 滑块操作【英文标题】:ios slider action in UITableViewCell 【发布时间】:2016-04-10 19:49:36 【问题描述】:我在UITableViewCell
错误中有一个UISlider
。
当我点击滑块时,它会显示:
-[MyCell slider:]: unrecognized selector sent to instance 0x7fcf81d82ab0
2016-04-10 22:24:49.947 TableViewController3[2372:153428] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MyCell slider:]: unrecognized selector sent to instance 0x7fcf81d82ab0'
这是我的代码
我的 TableViewCell 类
#import <UIKit/UIKit.h>
@interface MyCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UITextView *questionText;
@property (weak, nonatomic) IBOutlet UITextField *slider_value_text;
@property (weak, nonatomic) IBOutlet UISlider *slider;
@end
-----------------------------------------------------------------------
#import "MyCell.h"
@implementation MyCell
- (void)awakeFromNib
[super awakeFromNib];
// Initialization code
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
[super setSelected:selected animated:animated];
// Configure the view for the selected state
@end
我的 UITableViewController 类
#import <UIKit/UIKit.h>
#import "MyCell.h"
@interface myTableViewController : UITableViewController
@property NSArray *arr1;
-(void)Selector:(id)sender;
@end
#import "myTableViewController.h"
@interface myTableViewController ()
@end
@implementation myTableViewController
@synthesize arr1;
- (void)viewDidLoad
[super viewDidLoad];
NSLog(@"here amq");
arr1=@[@"homer",@"marge",@"lisa",@"asd eq hayde ewqewqsdaqww asd sad beklqwee awe qwe"];
- (void)didReceiveMemoryWarning
[super didReceiveMemoryWarning];
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
#warning Incomplete implementation, return the number of sections
return 1;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
#warning Incomplete implementation, return the number of rows
return [arr1 count];
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
MyCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
cell.questionText.text=[arr1 objectAtIndex:indexPath.row];
[[cell slider ] setMaximumValue:1];
[[cell slider ] setMaximumValue:5];
[[cell slider ] setTintColor:[UIColor redColor]];
[[cell slider] setTag:indexPath.row];
[[cell slider] addTarget:self action:@selector(generalSelector:) forControlEvents:UIControlEventValueChanged];
return cell;
-(void)Selector:(id)sender
if ([sender isKindOfClass:[UISlider class]])
UISlider *slider = (UISlider *)sender;
NSLog(@"Slider value %f",slider.value);
【问题讨论】:
哪一行代码导致了崩溃? 当我点击应用程序屏幕上的滑块时,main.m 中出现错误这一行 ""return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]))"" ->Theard1 SIGABRT 你的 myTableViewController 实现中有一个 generalSelector: 方法吗? 听起来你需要学习如何调试崩溃。请参阅raywenderlich.com/10209/my-app-crashed-now-what-part-1 了解一些有用的信息。 我不知道,generalSelector和常规选择器方法有什么区别?, 【参考方案1】:您应该将generalSelector:
替换为当滑块更改其值时要调用的选择器的实际名称。
在这种情况下,您应该将 generalSelector:
替换为 Selector:
如果您想了解什么是选择器,请阅读此内容:https://developer.apple.com/library/ios/documentation/General/Conceptual/DevPedia-CocoaCore/Selector.html
【讨论】:
如果他解决了您的问题,请单击复选标记接受答案。如果你愿意,也可以投票。以上是关于UITableViewCell 中的 ios 滑块操作的主要内容,如果未能解决你的问题,请参考以下文章
Firestore - UITableViewCell 内的 UISlider
iOS:调用方法的 UITableViewCell 中的 UITextField
ios - Uitableviewcell 中的 Uilabel 和 UIimageview