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

iOS - 无法访问 UITableViewCell 类中的 UITextView 委托

如何为 iOS 设置包中的滑块指定暗/亮模式图像?

iOS - 圆圈中的图像(UITableViewCell)