UIScrollView 内的 UIView 上的 UIButton

Posted

技术标签:

【中文标题】UIScrollView 内的 UIView 上的 UIButton【英文标题】:UIButton on UIView inside UIScrollView 【发布时间】:2014-01-16 14:28:51 【问题描述】:

我有一个 UIScrollView(类似于在 App Store 上显示的特色项目),它有 3 个视图,其中加载了 xibs。一切正常,除了我可以让我在 xibs 上的 UIButtons 触发。我想我错过了一些明显的东西,只是看不到它。我在这里和其他地方尝试了各种答案,但无济于事。

提前致谢

ViewController 上的 viewDidLoad 代码包含滚动视图

LSCWInfoView *view1 = [[[NSBundle mainBundle]
                         loadNibNamed:@"LSCW-InfoView"
                         owner:self options:nil]
                        firstObject];

CGRect frame;
frame.origin.x = 0;
frame.origin.y = 0;
frame.size = self.activityPageControl.frame.size;

[view1 setFrame:frame];

[self.activityScrollView addSubview:view1];

ScrambledInfoView *view2 = [[[NSBundle mainBundle]
                             loadNibNamed:@"Scrambled-InfoView"
                             owner:self options:nil]
                            firstObject];

CGRect frame2;
frame2.origin.x = 320;
frame2.origin.y = 0;
frame2.size = self.activityPageControl.frame.size;

[view2 setFrame:frame2];

[self.activityScrollView addSubview:view2];


TestInfoView *view3 = [[[NSBundle mainBundle]
                         loadNibNamed:@"Test-InfoView"
                         owner:self options:nil]
                        firstObject];

CGRect frame3;
frame3.origin.x = 640;
frame3.origin.y = 0;
frame3.size = self.activityPageControl.frame.size;

[view3 setFrame:frame3];

[self.activityScrollView addSubview:view3];

_activityScrollView.contentSize = CGSizeMake(_activityScrollView.frame.size.width * 3, _activityScrollView.frame.size.height);

编辑 - 加载到滚动视图中的视图之一的代码(其他 2 个相同)

#import "LSCWInfoView.h"

@implementation LSCWInfoView

- (id)initWithFrame:(CGRect)frame

    self = [super initWithFrame:frame];
    if (self) 
        // Initialization code
    
    return self;


/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect

    // Drawing code

*/

- (IBAction)lscwPlayButtonPressed:(id)sender

    NSLog(@"YEP");


@end

截图

【问题讨论】:

你是否为实际视图分配了任何行动出口 是的,我在加载到滚动视图中的视图上有一个 IBActions。目前不工作。 你的查看代码怎么样。它上面不可用尝试发布视图中涉及的代码。 我认为你的 xib 文件有问题。如果可能的话,你可以在这里分享你的项目,或者检查你是否正确连接了插座。 按钮在哪里?他们需要在 LCSWInfoView 中才能触发/链接 IBAction。 【参考方案1】:

在添加到滚动视图之前通过设置视图的帧大小来解决此问题

【讨论】:

以上是关于UIScrollView 内的 UIView 上的 UIButton的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollview内的UIView内的UIButton,ARC问题

UIScrollView 内的 UIVIew 反弹回来

在 UIScrollView 内的 UIView 上绘制草图

UIScrollView 内的 UIView 没有收到触摸事件

iOS - UITableViewCell 内的 UIScrollView 内的 UIView 未触发 UITapGestureRecognizer

UIScrollView 用于主 UIView 内的较小 UIView