小编Old*_*her的帖子

参数化的UIButton动作选择器用于另一个类中的方法?

这在很大程度上是一个语法问题.如何设置UIButton操作选择器来调用不同类的方法?我已经完成了类的#import,我需要使用按钮调用它的方法,我对按钮代码的外观有以下部分理解:

    UIButton *btnSplash = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    btnSplash.frame = CGRectMake(250, 270, 180, 30);
    [btnSplash setTitle:@"Menu" forState:UIControlStateNormal];
    [btnSplash addTarget:self action:@selector([CLASS METHOD:PARAMETER]) forControlEvents:UIControlEventTouchUpInside];
    [self addSubview:btnSplash];
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

预期':'在'''之前

@selector中缺少方法名称

我在参考库中看到的示例代码调用了本地方法,所以我试图概括并且我的尝试迄今为止都没有用.

谢谢

iphone cocoa-touch objective-c uibutton

4
推荐指数
1
解决办法
5309
查看次数

从另一个类访问viewController的方法

我一直在尝试使用一个UIButton动作来调用另一个类中的方法(AppViewController).我首先尝试在UIButton's调用类中创建视图控制器的实例,(caller.m)然后调用该方法,但这会导致EXC_BAD_ACCESS.

我意识到我需要指向视图控制器的同一个实例,现在我正在尝试确保正确声明视图控制器实例 caller.m.

我的声明AppViewController *viewControllerAppDelegate,所以我的想法是指由同一实例caller.m.

#import "caller.h"
#import "AppDelegate.h"

@implementation caller

- (id)initWithFrame:(CGRect)frame {
...
[btnSplash addTarget:viewController action:@selector(loadSplashView) forControlEvents:UIControlEventTouchUpInside];
....
}
Run Code Online (Sandbox Code Playgroud)

但是,viewController仍显示为未声明.我尝试了其他一些东西,但知道我可能遗漏了一些基本的东西.

:::: UPDATE ::::

好的,事实证明我需要创建以下内容,以便实际声明目标"viewController"并指向正确的实例:

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
AppViewController* viewController = appDelegate.viewController;
Run Code Online (Sandbox Code Playgroud)

现在可以正确调用视图控制器类中的方法.

有关此问题的更清楚解释和更一般的版本,请转到此处: Objective-c基础:在MyAppDelegate中声明的对象无法在另一个类中访问

iphone objective-c uibutton uiviewcontroller

4
推荐指数
1
解决办法
8179
查看次数

在XCode中定义静态类变量时出现C++ Duplicate Symbol错误

我有一个静态类成员在构造函数中递增.根据规则,它在类中声明并在外部定义.这应该是完全合法的.任何想法为什么我得到一个重复的符号错误?

class Player
{
   private:
      static int numPlayers;
   public:
      Player() { numPlayers++; }
};

int Player::numPlayers = 0;
Run Code Online (Sandbox Code Playgroud)

c++ xcode static-members duplicate-symbol

3
推荐指数
1
解决办法
5243
查看次数

Sencha Touch:如何在Ext.Panel中水平对齐按钮?

我试图在Ext.Panel中让两个按钮彼此相邻显示.

.js代码:

ProductView = new Ext.Panel({
    styleHtmlContent: true,
    scroll: 'vertical',
    items: [
        new Ext.DataView({
        scroll: false,
        store: productStore,
        tpl: productTpl,
        itemSelector: 'div.productView',
        }),
        {
            xtype: 'button',
            ui: 'blue-round',
            height: '60',
            text: 'Buy',
            handler: function() {
                // ...
            }
        },{
            xtype: 'button',
            ui: 'green-round',
            height: '60',
            text: 'Share',
            handler: function() {
                // ...
            }
        }

    ]
});
Run Code Online (Sandbox Code Playgroud)

SCSS代码:

@include sencha-button-ui('green', $branded-green);
@include sencha-button-ui('blue', $branded-blue);
Run Code Online (Sandbox Code Playgroud)

这个按钮看起来像这样:

垂直对齐的按钮

我认为这可能是一个调整大小的问题,但是将width: '40%',属性添加到每个按钮只会产生:

较小的按钮

但是,我希望按钮彼此相邻而不是堆叠在一起.有什么建议?

更新: 我试图利用该align:属性,但这没有做任何事情:

    {
        xtype: 'button',
        ui: 'blue-round',
        height: '60', …
Run Code Online (Sandbox Code Playgroud)

extjs sencha-touch

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

循环矢量化以及如何避免它

循环向量化是在开始时计算所有右侧表达式的时间.我刚刚发现我的循环正在被矢量化(在FORTRAN 77中......不要问).我需要在每次迭代中更新循环条件变量,但是如何重写以解决此向量化?

在一篇相关文章中,我正在寻找一种方法来专门禁用FORTRAN中的这种优化"功能",但在这里我正在寻找一种更通用的算法解决方案.

fortran loops vectorization

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

iPhone版本发布的"显示包装内容"显示空白的PNG?

所以我成功地完成了我的第一个iPhone发布版本,当我好奇地去了新鲜出炉的.app文件的"显示包内容"时,我注意到所有包含的PNG都是空白的!它们都设置为适当的分辨率,但是当我打开它们时,没有什么可看的,但默认的Preview.app灰色.

我尝试打开其他.app"包内容"(来自OS X应用程序),看看他们的PNG是否可见且确定无论如何.对于iPhone .app版本来说,这项业务是否正常;或者我是否错过了一个陷阱?

iphone png build

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

什么(void)dealloc在AppDelegate中被调用?

我知道实例变量是在dealloc(如下所示)中释放的,但是当它被调用时呢?应用程序关闭时是否释放所有实例变量,或者是否有可接受的方式让它们在不需要时单独解除分配?

- (void)dealloc {
    [fred release];
    [wilma release];
    [barney release];
    [betty release];
    [super dealloc];
}
Run Code Online (Sandbox Code Playgroud)

iphone objective-c dealloc ios

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

优化iPhone拍照速度,UIImagePickerController

我在我的应用程序中使用UIImagePickerController.有没有人使用任何优化技巧来拍照延迟?我不需要将它们存储到库中.我只想捕获像素数据并在进行计算后销毁图像对象.

此外,还有一种方法可以在镜头加载时隐藏它吗?

(最坏的情况是,我可以在相机启动时屏蔽镜头并在保存/计算时屏蔽冻结的图像.)

编辑: 我已经设置好了showsCameraControls = NO;.这会隐藏快照之间的镜头效果,但不会影响相机启动时镜头动画的存在.

iphone optimization uiimagepickercontroller

0
推荐指数
1
解决办法
1987
查看次数

在UIView动画期间阻止用户输入

我有一个UIView动画(由touchesEnded:事件调用),我希望在允许更多用户输入之前完成执行.在调用动画之前,我检查标志" isMoving"以查看动画是否正在进行中.然后我设置isMovingYES并执行如下动画(是的,我知道这是不是块格式)...

- (void) methodCalledFromViewControllerTouchesEnded {
    if (isMoving == YES) {
        NSLog (@"Don't start another animation!");
        return;
    }   
    isMoving = YES;

    ......

    [UIView beginAnimations:@"move" context:NULL];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
    [UIView setAnimationDuration:0.25f];
    ...
    // DO MOVE STUFF
    ...
    [UIView commitAnimations];

    isMoving = NO;
}
Run Code Online (Sandbox Code Playgroud)

然后我设置isMovingNO所以后续调用touchesEnded:不会启动另一个动画,而当前的动画正在进行中.然而,如果用户在初始动画正在进行时保持触摸,则该FAILS和动画被重复进行.

我想知道这是否可能与触摸事件是在与动画不同的线程上处理的可能性.

我也在调试模式下运行并注意到动画实际上并没有被"提交",直到控件离开methodCalledFromViewControllerTouchesEnded并返回touchesEnded:,从而使得isMoving = NO;标志无用.

任何有助于防止重复动画的帮助都将非常感激.

iphone cocoa-touch uiviewanimation ios

0
推荐指数
2
解决办法
3321
查看次数