iOS:点击button卡死

场景:

在tableView的Cell中有一个button,我需要点击这个button然后使得其视图控制器上的一个视图改变frame,但是我点击这个button后,导致卡死,也不崩溃,所有事件失效,我本人初步认为是线程卡死,或者事件全部传递到了我需要改变frame的那个视图上,无法分发事件。

解决:

1.使用Block解决,或者其他设计模式来传递点击消息;

2.使用多线程解决,最高效快捷;

示例:

我使用的是Block解决:

在tableView中声明Block

因为我需要传值,所以带有参数

 typedef void(^btnBlock)(ModelDiscussionList *);
  @property (nonatomic,copy)   btnBlock            block;

我在tableView构建Cell的协议方法中,在此处添加button点击事件,并根据indexPath.row来设置button的tag值,以此来获取数据

 //实现Block,并且实现传值
-(void)outLaftView:(UIButton *)button
{
    ModelDiscussionList *model = _dataArray[button.tag];
    _block(model);
}

在视图控制器初始化tableView的时候调用Block

 //调用Block
    _commentStuTableView.block = ^(ModelDiscussionList *model)
    {
        //在里面实现改变视图frame的方法
    };

我就是这样解决这个问题的

时间: 2024-11-06 12:25:33

iOS:点击button卡死的相关文章

iOS中点击背景收键盘

这一次给大家带来的是ios中点击背景如何收键盘 直接上图: file:///Users/a504-18/Desktop/屏幕快照%202016-03-17%20下午7.35.07.png 先创建一个这样的页面,把两个文本框进行连线: file:///Users/a504-18/Desktop/屏幕快照%202016-03-17%20下午7.36.57.png 其实,很简单,视图控制器有一个view属性,是从UIViewController继承来的.这个view属性对应的nib文件中的View.使

ios点击改变uiview背景颜色

ios点击改变uiview背景颜色是一个再常见不过的需求.第一反应应该不麻烦,于是写了个第一个版本 @interface RespondentUIView() { UIColor * bgColor; } @end @implementation RespondentUIView- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { bgColor = self.backgroundColor; self.backgr

一个窗体里打开一张图片,点击button,跳转到另一个窗体里,让该窗体显示同一张图片该怎么实现898

一个窗体里打开一张图片,点击button,跳转到另一个窗体里,让该窗体显示同一张图片该怎么实现 baozoumanhua.com/users/17195301/talkingsbaozoumanhua.com/users/17195301/following_articlesbaozoumanhua.com/users/17195301/articlesbaozoumanhua.com/users/17195356baozoumanhua.com/users/17195356/forum_art

ios点击进去去除push红点的方法

ios点击进去去除push红点的方法 by 伍雪颖 [UIApplication sharedApplication].applicationIconBadgeNumber = 0;

ios点击产生波纹效果

ios点击产生波纹效果 by 伍雪颖 - (void)viewDidLoad { [super viewDidLoad]; RippleView = [[UIView alloc] initWithFrame:(CGRect){0,0,300,300}]; RippleView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.3]; RippleView.layer.cornerRadius = 150; Rip

多次点击Button后DropDownList选中的值变为默认值?

因为在点击Button时会触发事件,当触发事件的时候,页面会刷新,触发Page_Load事件,DropDownList的值就会回到初始值.需要加上IsPostBack来判断,是当前请求是否为第一次.(C# IsPostBack) 解决方法:如果DropDownList中的数据是绑定数据源就把DropDownList初始化方法放在if(!IsPostBack)中.或者在asp:DropDownList中添加属性EnableViewState="false".(C# ViewState)

IOS 按钮(button)用法与属性实例

IOS 按钮(button)用法与属性实例 - (void) toggleButton: (UIButton *) button { if (isOn = !isOn) { [button setTitle:@"On" forState:UIControlStateNormal]; [button setTitle:@"On" forState:UIControlStateHighlighted]; [button setBackgroundImage:baseGr

点击button触发onclick事件判空后依旧自动跳转

这是一个前端的问题. 其中判断字符串为空的脚本代码是这样的: var remark = $("#Remark").val(); //判空.注意:var reg = /空格/g; var reg = / /g; var tmp = remark.replace(reg, ""); 先把所有空格去除,通过判断tmp是否为空来判断文本框是否为空. 问题是这样的:我点击button后,触发js脚本判断input框是否为空,如果为空就提示出错.否则提交表单. 结果是这样的:我

程序日志--ios“文字长度--button与label的交互”程序

我的学习日志003:"文字长度--button与label的交互"程序 交代一下我做程序的工具:mac os x虚拟机10.9.3         Xcode6         百度^-^         参考书iPhone30天精通(本书已经过时,但是还有一定的参考价值,可以引导正确的学习方向). 没什么新的知识点,直接放步骤和代码. XCode新建SingleView程序,viewControllor.h代码如下: #import <UIKit/UIKit.h> #im