小编Fab*_*lli的帖子

目标行动uicontrolevents

我必须在这里遗漏一些明显的东西,但......

UIControl有一个方法

- (void)addTarget:(id)target action:(SEL)action forControlEvents: (UIControlEvents)controlEvents
Run Code Online (Sandbox Code Playgroud)

它允许您添加要在任何给定的controlEvent发生时调用的操作.ControlEvents是一个事件的位掩码,它告诉你触摸是否下降,内部,或被拖动等等,其中大约有16个,你或他们在一起,当它们中的任何一个发生时被调用.

选择器可以具有以下签名之一

- (void)action
- (void)action:(id)sender
- (void)action:(id)sender forEvent:(UIEvent *)
Run Code Online (Sandbox Code Playgroud)

这些都没有告诉你控制事件位掩码是什么.UIEvent略有不同,它与实际的触摸事件有关,而且(我认为)不包含UIControlEvent.发送方(UIControl)也无法找到控制事件.

我想有一个处理大量控制事件的方法,因为我有一些共同的代码,无论发生了哪些事件或事件,但我仍然需要知道UIControlEvents用于某些特定处理.

我错过了一种方法来找出在调用操作时使用了什么UIControlEvents,或者我是否真的必须将我的代码分成

-(void)actionWithUIControlEventX;
-(void)actionWithUIControlEventY;
Run Code Online (Sandbox Code Playgroud)

events action objective-c targets

13
推荐指数
2
解决办法
1万
查看次数

尝试将CGrect传递给performSelector withObject

我正在尝试传递CGRect:

SEL frameSel = NSSelectorFromString(@"setFrame:");
CGRect rect = CGRectMake(10, 10, 200, 100);
[object performSelector:frameSel withObject:rect ];
Run Code Online (Sandbox Code Playgroud)

但这不编译

我也尝试过:

SEL frameSel = NSSelectorFromString(@"setFrame:");
CGRect rect = CGRectMake(10, 10, 200, 100);
NSValue * value = [NSValue valueWithCGRect:rect];
[object performSelector:frameSel withObject:value ];
Run Code Online (Sandbox Code Playgroud)

实际上,这确实编译但是当我调试时,框架没有正确设置:

po object
<UILabel: 0x39220f0; frame = (0 0; 200 100); text = 'reflectionLabel'; clipsToBounds = YES; userInteractionEnabled = NO; layer = <CALayer: 0x3922240>>
Run Code Online (Sandbox Code Playgroud)

但它应该是frame =(10 10; 200 100)

我怎么解决这个问题?

先感谢您!

iphone cocoa-touch selector argument-passing

5
推荐指数
2
解决办法
4819
查看次数

Lua在iPhone上

我正在尝试在iPhone上运行Lua脚本.有可能这样做吗?

我如何开始使用Lua?我找不到东西.我唯一能找到的是这应该是可能的,但我想知道如何.

iphone scripting lua

5
推荐指数
2
解决办法
2920
查看次数