【问题标题】:Set Delegate Programmatically for a UIScrollView in .xib以编程方式为 .xib 中的 UIScrollView 设置委托
【发布时间】:2012-10-06 10:00:34
【问题描述】:

我的 .xib 文件中有一个 UIView。 (注意不是 UIControlView)

@interface OfferUIView : UIView

所以我的 UIView 的自定义类是 OfferUIView

我想给它添加一个滚动视图。当我使用 xcode 功能添加它时,我只是将滚动视图的委托连接到 OfferUIView。如何在 OfferUIView.m 中以编程方式执行此操作?

这是我写的:

self.scrollView = [[UIScrollView alloc] initWithFrame: frame];
self.scrollView.delegate = self; 

但我在delegate = self 上收到这样的警告:

Assigning to id<UIScrollViewDelegate> from incompatible type OfferUIView

你知道我该如何解决吗?

编辑:

当我使用时

@interface OfferUIView : UIView <UIScrollViewDelegate>

self.pageViews = [[NSMutableArray alloc] init];
    for (NSInteger i = 0; i < pageCount; ++i) {
        [self.pageViews addObject:[NSNull null]];
    }

    CGRect frame = self.view.bounds;
    self.scrollView = [[UIScrollView alloc] initWithFrame: frame];
    CGSize pagesScrollViewSize = self.view.frame.size;
    self.scrollView.contentSize = CGSizeMake(pagesScrollViewSize.width * self.pageImages.count, pagesScrollViewSize.height);
    self.scrollView.delegate = self;

UIScrollView 应该是几张图片,但是滚动不起作用。

【问题讨论】:

  • 在你的View Controller里放这个
  • 谢谢,请检查我在问题末尾的编辑。
  • 您正在通过 xib rite 放置滚动视图?如果是这样,则删除此 self.scrollView = [[UIScrollView alloc] initWithFrame: frame];
  • 不,我以编程方式创建了它。检查代码。

标签: iphone objective-c ios xcode


【解决方案1】:

你必须指定你的类应该符合UIScrollViewDelegate

@interface OfferUIView : UIView <UIScrollViewDelegate>

【讨论】:

  • 我这样做了,警告消失了,但滚动视图不起作用。在问题末尾检查我的编辑。
  • @Ali 滚动视图的contentSize 设置为什么,它的大小是否大于滚动视图的框架?
  • 正如你在我的编辑中看到的,我设置了 contentSize,当我从苹果功能设置它时它可以工作,但不是以编程方式,你能找出问题所在吗?
  • @Ali 这个“苹果功能”是什么意思?
  • 可以以编程方式设置内容大小。您的内容大小必须大于滚动视图的框架大小才能看到滚动
【解决方案2】:
scrollView =[[UIScrollView alloc]initWithFrame:CGRectMake(10, 402, 750, 600)];
scrollView.delegate = self;
scrollView.scrollEnabled = YES; 
[self.view addSubview:scrollView];
[scrollView setContentSize:CGSizeMake(654, ([reports_list count]+1)*110)];

它对我有用……试试吧……然后忽略框架。

【讨论】:

  • :感谢您的回答。对我来说效果很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-10
  • 2016-03-31
  • 2011-09-29
  • 2015-01-17
  • 2014-07-20
  • 2017-08-14
  • 2021-10-18
相关资源
最近更新 更多