多视图应用程序的问题

发布于 2024-10-28 09:44:39 字数 3437 浏览 0 评论 0原文

您好,我制作了一个应用程序,它有 2 个视图,一个分页滚动视图的高度为 430 像素,另一个静态视图的高度为 50 像素。我的问题有点难以理解,我在静态视图中有信息按钮,如果我单击它,程序会由于以下原因而失败:

sharedlibrary apply-load-rules all kill Current language:  auto; currently objective-c quit Program ended with exit code: 0 

或者

2011-03-30 08:51:28.427 PhotoScroller[637:207] -[__NSCFType buttonPressed1]: unrecognized selector sent to instance 0x4b36db0
2011-03-30 08:51:28.456 PhotoScroller[637:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFType buttonPressed1]: unrecognized selector sent to instance 0x4b36db0'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x00f2f5a9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x01083313 objc_exception_throw + 44
    2   CoreFoundation                      0x00f310bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
    3   CoreFoundation                      0x00ea0966 ___forwarding___ + 966
    4   CoreFoundation                      0x00ea0522 _CF_forwarding_prep_0 + 50
    5   UIKit                               0x002bc4fd -[UIApplication sendAction:to:from:forEvent:] + 119
    6   UIKit                               0x0034c799 -[UIControl sendAction:to:forEvent:] + 67
    7   UIKit                               0x0034ec2b -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
    8   UIKit                               0x0034d7d8 -[UIControl touchesEnded:withEvent:] + 458
    9   UIKit                               0x002e0ded -[UIWindow _sendTouchesForEvent:] + 567
    10  UIKit                               0x002c1c37 -[UIApplication sendEvent:] + 447
    11  UIKit                               0x002c6f2e _UIApplicationHandleEvent + 7576
    12  GraphicsServices                    0x01887992 PurpleEventCallback + 1550
    13  CoreFoundation                      0x00f10944 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
    14  CoreFoundation                      0x00e70cf7 __CFRunLoopDoSource1 + 215
    15  CoreFoundation                      0x00e6df83 __CFRunLoopRun + 979
    16  CoreFoundation                      0x00e6d840 CFRunLoopRunSpecific + 208
    17  CoreFoundation                      0x00e6d761 CFRunLoopRunInMode + 97
    18  GraphicsServices                    0x018861c4 GSEventRunModal + 217
    19  GraphicsServices                    0x01886289 GSEventRun + 115
    20  UIKit                               0x002cac93 UIApplicationMain + 1160
    21  PhotoScroller                       0x00001c20 main + 102
    22  PhotoScroller                       0x00001bb1 start + 53
    23  ???                                 0x00000001 0x0 + 1
)
terminate called after throwing an instance of 'NSException'

但如果我在分页滚动视图中使用相同的代码,它可以完美地

作为我的代码的一部分:

UIButton *iButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
iButton.frame = CGRectMake(269.0f, 17.0f, 18.0f, 19.0f);
iButton.backgroundColor = [UIColor clearColor];
[iButton addTarget:self action:@selector(buttonPressed) 
forControlEvents:UIControlEventTouchUpInside];    
[self.view addSubview:iButton];

-(void)buttonPressed{
    NSLog(@"button pressed in PSV...");
}

我不明白它,我希望它能起作用。我只是想理解为什么它不起作用。

静态视图是 ViewController 的子类 分页滚动视图是 UIScrollView 的子类,

感谢您的所有答案。

Hi i made an application which has 2 views one paging scroll view which is 430 px heigh and other static view which has 50 px. My problems is a bit hard to understand, i have info button in the static view and if i click on it the program falls due to this:

sharedlibrary apply-load-rules all kill Current language:  auto; currently objective-c quit Program ended with exit code: 0 

or

2011-03-30 08:51:28.427 PhotoScroller[637:207] -[__NSCFType buttonPressed1]: unrecognized selector sent to instance 0x4b36db0
2011-03-30 08:51:28.456 PhotoScroller[637:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFType buttonPressed1]: unrecognized selector sent to instance 0x4b36db0'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x00f2f5a9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x01083313 objc_exception_throw + 44
    2   CoreFoundation                      0x00f310bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
    3   CoreFoundation                      0x00ea0966 ___forwarding___ + 966
    4   CoreFoundation                      0x00ea0522 _CF_forwarding_prep_0 + 50
    5   UIKit                               0x002bc4fd -[UIApplication sendAction:to:from:forEvent:] + 119
    6   UIKit                               0x0034c799 -[UIControl sendAction:to:forEvent:] + 67
    7   UIKit                               0x0034ec2b -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
    8   UIKit                               0x0034d7d8 -[UIControl touchesEnded:withEvent:] + 458
    9   UIKit                               0x002e0ded -[UIWindow _sendTouchesForEvent:] + 567
    10  UIKit                               0x002c1c37 -[UIApplication sendEvent:] + 447
    11  UIKit                               0x002c6f2e _UIApplicationHandleEvent + 7576
    12  GraphicsServices                    0x01887992 PurpleEventCallback + 1550
    13  CoreFoundation                      0x00f10944 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
    14  CoreFoundation                      0x00e70cf7 __CFRunLoopDoSource1 + 215
    15  CoreFoundation                      0x00e6df83 __CFRunLoopRun + 979
    16  CoreFoundation                      0x00e6d840 CFRunLoopRunSpecific + 208
    17  CoreFoundation                      0x00e6d761 CFRunLoopRunInMode + 97
    18  GraphicsServices                    0x018861c4 GSEventRunModal + 217
    19  GraphicsServices                    0x01886289 GSEventRun + 115
    20  UIKit                               0x002cac93 UIApplicationMain + 1160
    21  PhotoScroller                       0x00001c20 main + 102
    22  PhotoScroller                       0x00001bb1 start + 53
    23  ???                                 0x00000001 0x0 + 1
)
terminate called after throwing an instance of 'NSException'

but if i use the same code in paging scroll view it works perfectly

parts of my code:

UIButton *iButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
iButton.frame = CGRectMake(269.0f, 17.0f, 18.0f, 19.0f);
iButton.backgroundColor = [UIColor clearColor];
[iButton addTarget:self action:@selector(buttonPressed) 
forControlEvents:UIControlEventTouchUpInside];    
[self.view addSubview:iButton];

-(void)buttonPressed{
    NSLog(@"button pressed in PSV...");
}

I do not understand it, I expect that it will work.I just want to understand why it do not works.

static view is subclass of ViewController
paging scroll view is subclass of UIScrollView <UIScrollViewDelegate>

thanks for all the answers.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我们的影子 2024-11-04 09:44:39

您为按钮操作指定的选择器应采用 id 类型的单个参数。因此,尝试将选择器规范更改为 @selector(buttonPressed:) 并将操作方法​​更改为:

- (void)buttonPressed:(id)sender { ... }

The selector you specify for an action of a button should take a single argument of type id. So, try changing your selector specification to @selector(buttonPressed:) and change your action method to be:

- (void)buttonPressed:(id)sender { ... }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文