UIButton添加到IOS7的UITableviewCell上时Highlighted效果不起作用

laencho 2014-08-08 09:28:36
UIButton添加到IOS7的UITableviewCell上时Highlighted效果不起作用。在ios6下就highlighted有效果;
我的代码如下:
[_isLoginBtn setBackgroundImage:[UIImage imageWithUIView:_isLoginBtn] forState:UIControlStateHighlighted];
效果图:
...全文
1461 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
laencho 2014-08-18
  • 打赏
  • 举报
回复
引用 13 楼 zhangao0086 的回复:
你的_isLoginBtn类型是不是Custom的?
是custom类型,但不关这个事! 谢谢你!我已经搞定,[setUpTabView setDelaysContentTouches:NO];这个属性设置为no就可以了。 把 uitableview 设置一下就可以了。
laencho 2014-08-18
  • 打赏
  • 举报
回复
引用 12 楼 hslinux 的回复:
ios6跟7有很多东西都无法通用了。 如果还不行,直接通过改变按钮背景图片来实现高亮吧。
谢谢你!我已经搞定,[setUpTabView setDelaysContentTouches:NO];这个属性设置为no就可以了。 [setUpTabView setDelaysContentTouches:NO];
laencho 2014-08-18
  • 打赏
  • 举报
回复
引用 11 楼 laencho 的回复:
[quote=引用 10 楼 zhangao0086 的回复:] [quote=引用 9 楼 laencho 的回复:] [quote=引用 8 楼 zhangao0086 的回复:] [quote=引用 7 楼 laencho 的回复:] [quote=引用 1 楼 zhangao0086 的回复:] 估计是你button的事件被cell截获了,把button放到tableFooterView上试试
谢谢你! 我跟你想的一样,可能是ios7下面,把button的highlight事件给截取了! 我的button就是放在tablefootview上面的!ios6下面正常,到了ios7下面就没有了highlight效果。但是touchupinside是有事件响应。唯独hightlight不起作用。[/quote] 这个应该不至于,我之前也在tablefootview上放过一个Button,是可以正常highlight的,你看看是不是图片的原因[/quote] 同一套代码,在ios6下面正常,在ios7下面,button不在tableview的cell上时有highlighed,只要是加在tableview的cell上,就没有highlighted效果。[/quote] 上.m代码 [/quote] tableview的关联代码太多了,我只给出按钮的样式设置的代码: _isLoginBtn.frame = CGRectMake(orginX, 0.f, KISLOGIN_BUTTON_WIDTH, KISLOGIN_BUTOTN_HEIGHT); _isLoginBtn.layer.borderColor = [UIColor colorWithHexString:@"#cccccc"].CGColor; _isLoginBtn.layer.borderWidth = 0.7f; _isLoginBtn.layer.cornerRadius = 5.0f; [_isLoginBtn setBackgroundColor:[UIColor colorWithHexString:@"#ff3b30"]]; // [_isLoginBtn setBackgroundImage:[UIImage imageWithUIView:_isLoginBtn] forState:UIControlStateHighlighted]; [_isLoginBtn setBackgroundImage:[UIImage imageNamed:@"btn_anniu_sel.png"] forState:UIControlStateHighlighted]; [_isLoginBtn setBackgroundImage:[UIImage imageNamed:@"btn_anniu_nor.png"] forState:UIControlStateNormal]; _isLoginBtn.backgroundColor = [UIColor colorWithHexString:@"#ffffff"]; // [_isLoginBtn setTintColor:[UIColor yellowColor]]; [_isLoginBtn setTitle:@"退出当前账号" forState:UIControlStateNormal]; [_isLoginBtn setTitleColor:[UIColor colorWithHexString:@"#ff3b30"] forState:UIControlStateNormal]; [_isLoginBtn setTitleColor:[UIColor colorWithHexString:@"ffffff"] forState:UIControlStateHighlighted]; [_isLoginBtn addTarget:self action:@selector(isLoginEventToLogout:) forControlEvents:UIControlEventTouchUpInside]; // [_isLoginBtn addTarget:self action:@selector(isLoginEventHighlight:)forControlEvents:UIControlEventTouchDown]; [_tabFootView addSubview:_isLoginBtn]; [setUpTabView setTableFooterView:_tabFootView]; 在ios6下面可以highlighted,就是ios7不行![/quote] 谢谢你!我已经搞定,[setUpTabView setDelaysContentTouches:NO];这个属性设置为no就可以了。
Bannings 2014-08-18
  • 打赏
  • 举报
回复
你的_isLoginBtn类型是不是Custom的?
hslinux 2014-08-18
  • 打赏
  • 举报
回复
ios6跟7有很多东西都无法通用了。 如果还不行,直接通过改变按钮背景图片来实现高亮吧。
laencho 2014-08-18
  • 打赏
  • 举报
回复
引用 10 楼 zhangao0086 的回复:
[quote=引用 9 楼 laencho 的回复:] [quote=引用 8 楼 zhangao0086 的回复:] [quote=引用 7 楼 laencho 的回复:] [quote=引用 1 楼 zhangao0086 的回复:] 估计是你button的事件被cell截获了,把button放到tableFooterView上试试
谢谢你! 我跟你想的一样,可能是ios7下面,把button的highlight事件给截取了! 我的button就是放在tablefootview上面的!ios6下面正常,到了ios7下面就没有了highlight效果。但是touchupinside是有事件响应。唯独hightlight不起作用。[/quote] 这个应该不至于,我之前也在tablefootview上放过一个Button,是可以正常highlight的,你看看是不是图片的原因[/quote] 同一套代码,在ios6下面正常,在ios7下面,button不在tableview的cell上时有highlighed,只要是加在tableview的cell上,就没有highlighted效果。[/quote] 上.m代码 [/quote] tableview的关联代码太多了,我只给出按钮的样式设置的代码: _isLoginBtn.frame = CGRectMake(orginX, 0.f, KISLOGIN_BUTTON_WIDTH, KISLOGIN_BUTOTN_HEIGHT); _isLoginBtn.layer.borderColor = [UIColor colorWithHexString:@"#cccccc"].CGColor; _isLoginBtn.layer.borderWidth = 0.7f; _isLoginBtn.layer.cornerRadius = 5.0f; [_isLoginBtn setBackgroundColor:[UIColor colorWithHexString:@"#ff3b30"]]; // [_isLoginBtn setBackgroundImage:[UIImage imageWithUIView:_isLoginBtn] forState:UIControlStateHighlighted]; [_isLoginBtn setBackgroundImage:[UIImage imageNamed:@"btn_anniu_sel.png"] forState:UIControlStateHighlighted]; [_isLoginBtn setBackgroundImage:[UIImage imageNamed:@"btn_anniu_nor.png"] forState:UIControlStateNormal]; _isLoginBtn.backgroundColor = [UIColor colorWithHexString:@"#ffffff"]; // [_isLoginBtn setTintColor:[UIColor yellowColor]]; [_isLoginBtn setTitle:@"退出当前账号" forState:UIControlStateNormal]; [_isLoginBtn setTitleColor:[UIColor colorWithHexString:@"#ff3b30"] forState:UIControlStateNormal]; [_isLoginBtn setTitleColor:[UIColor colorWithHexString:@"ffffff"] forState:UIControlStateHighlighted]; [_isLoginBtn addTarget:self action:@selector(isLoginEventToLogout:) forControlEvents:UIControlEventTouchUpInside]; // [_isLoginBtn addTarget:self action:@selector(isLoginEventHighlight:)forControlEvents:UIControlEventTouchDown]; [_tabFootView addSubview:_isLoginBtn]; [setUpTabView setTableFooterView:_tabFootView]; 在ios6下面可以highlighted,就是ios7不行!
laencho 2014-08-11
  • 打赏
  • 举报
回复
引用 1 楼 zhangao0086 的回复:
估计是你button的事件被cell截获了,把button放到tableFooterView上试试
谢谢你! 我跟你想的一样,可能是ios7下面,把button的highlight事件给截取了! 我的button就是放在tablefootview上面的!ios6下面正常,到了ios7下面就没有了highlight效果。但是touchupinside是有事件响应。唯独hightlight不起作用。
laencho 2014-08-11
  • 打赏
  • 举报
回复
引用 2 楼 u012490014 的回复:
可以实现的,,,,,
谢谢你! 不好意思,你应该没有理解我提的问题!可以看看1楼与4楼的回答!
laencho 2014-08-11
  • 打赏
  • 举报
回复
引用 4 楼 u010996951 的回复:
你是xib 对Cell 重写的把
谢谢你! 我是对cell进行了重写,但我不是用xib. 你有什么方法?1楼的想法,跟我想的一样。可能是给cell获取了! 1楼的那种解决方法我也试过。我这个“退出账号”就是放在tabfootview上面的。
Bannings 2014-08-11
  • 打赏
  • 举报
回复
引用 9 楼 laencho 的回复:
[quote=引用 8 楼 zhangao0086 的回复:] [quote=引用 7 楼 laencho 的回复:] [quote=引用 1 楼 zhangao0086 的回复:] 估计是你button的事件被cell截获了,把button放到tableFooterView上试试
谢谢你! 我跟你想的一样,可能是ios7下面,把button的highlight事件给截取了! 我的button就是放在tablefootview上面的!ios6下面正常,到了ios7下面就没有了highlight效果。但是touchupinside是有事件响应。唯独hightlight不起作用。[/quote] 这个应该不至于,我之前也在tablefootview上放过一个Button,是可以正常highlight的,你看看是不是图片的原因[/quote] 同一套代码,在ios6下面正常,在ios7下面,button不在tableview的cell上时有highlighed,只要是加在tableview的cell上,就没有highlighted效果。[/quote] 上.m代码
laencho 2014-08-11
  • 打赏
  • 举报
回复
引用 8 楼 zhangao0086 的回复:
[quote=引用 7 楼 laencho 的回复:] [quote=引用 1 楼 zhangao0086 的回复:] 估计是你button的事件被cell截获了,把button放到tableFooterView上试试
谢谢你! 我跟你想的一样,可能是ios7下面,把button的highlight事件给截取了! 我的button就是放在tablefootview上面的!ios6下面正常,到了ios7下面就没有了highlight效果。但是touchupinside是有事件响应。唯独hightlight不起作用。[/quote] 这个应该不至于,我之前也在tablefootview上放过一个Button,是可以正常highlight的,你看看是不是图片的原因[/quote] 同一套代码,在ios6下面正常,在ios7下面,button不在tableview的cell上时有highlighed,只要是加在tableview的cell上,就没有highlighted效果。
Bannings 2014-08-11
  • 打赏
  • 举报
回复
引用 7 楼 laencho 的回复:
[quote=引用 1 楼 zhangao0086 的回复:] 估计是你button的事件被cell截获了,把button放到tableFooterView上试试
谢谢你! 我跟你想的一样,可能是ios7下面,把button的highlight事件给截取了! 我的button就是放在tablefootview上面的!ios6下面正常,到了ios7下面就没有了highlight效果。但是touchupinside是有事件响应。唯独hightlight不起作用。[/quote] 这个应该不至于,我之前也在tablefootview上放过一个Button,是可以正常highlight的,你看看是不是图片的原因
阮小木 2014-08-08
  • 打赏
  • 举报
回复
用这个方法试试setImage forState:
阮小木 2014-08-08
  • 打赏
  • 举报
回复
可以实现的,,,,,
Bannings 2014-08-08
  • 打赏
  • 举报
回复
估计是你button的事件被cell截获了,把button放到tableFooterView上试试
Leo__Man 2014-08-08
  • 打赏
  • 举报
回复
你是xib 对Cell 重写的把

29,027

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧