UIButton选择器在嵌套的UIViews中不起作用

lim*_*mon 2 iphone uiscrollview uiview ios

我有这个问题让我发疯.我花了几十年时间弄清楚为什么会这样.

我有一个UIScrollView作为滚动视图UIView.在这个scrollView中,我有三个UIView在运行时创建的不同的s.在这三个中UIView的一个中,我创建了一个按钮.这是我的代码.

        UIButton *buttonLike = [UIButton buttonWithType:UIButtonTypeRoundedRect ] ;
        buttonLike.frame =CGRectMake(scrollViewWidth +200, 30,36, 16);
        buttonLike.imageView.image = [UIImage imageNamed:@"like.png"];
        [buttonLike addTarget:self action:@selector(buttonLikePressed:) forControlEvents:UIControlEventTouchUpInside] ;
Run Code Online (Sandbox Code Playgroud)

scrollViewWidth也是一个常量定义和初始化.
并且,我将此按钮添加为其中一个子视图UIViews.但是,无论我做什么,buttonLikePressed方法都不会调用.我已经搜索了这个问题并提出了这些解决方案.

Iphone UIButton无法在嵌套的UIViews
iPhone SDK 2中工作:UIButton无法在从nib文件加载的嵌套视图中工作

他们描述了同样的问题.但是,作为解决方案,他们使用
-(id)initWithFrame:(CGRect)aRect方法初始化他们的视图.好吧,我已经使用 方法初始化了我的UIViewsinitWithFrame.你们有什么想法我能解决这个问题吗?

谢谢你们

Fil*_*lic 7

您的按钮是否会对触摸做出反应?按下后会突出显示吗?

因为听起来您正在将此按钮添加到该视图边界之外的视图中,这会阻止触摸传播到按钮.您必须将视图的宽度增加到scrollViewWidth + 200 + 36或更多,或者您需要将按钮放在视图的边界内.向我们展示如何创建添加按钮的视图.