0

我已经在界面生成器中创建了一个 UIScrollView,并且我已经正确地链接了这一切。当我尝试在 scrollV 上设置 userInteractionEnabled 时,它似乎并没有改变值(见下文):

不变

我打印了许多值来检查正在发生的事情,但我很困惑:

(lldb) p self.scrollV.userInteractionEnabled
(BOOL) $3 = NO

(lldb) p self.scrollV.contentSize
(CGSize) $4 = (width=320, height=479)

(lldb) p self.scrollV.frame
错误:属性在“UIScrollView *”类型的对象上找不到“框架”错误:1 解析表达式错误

我发现 frame 属性没有显示很奇怪,但是当我自己打印出 scrollView 时,我得到以下信息:

(lldb) po self.scrollV
(UIScrollView *) $5 = 0x16f7a8d0<UIScrollView: 0x16f7a8d0; frame = (0 60; 320 312); clipsToBounds = YES; autoresize = RM+TM; gestureRecognizers = <NSArray: 0x16fb2630>; layer = <CALayer: 0x16f08860>; contentOffset: {0, 0}>

在我看来,这似乎意味着有 2 个 UIScrollViews 彼此独立工作,我最初使用 IBOutlet UIScrollView *scrollV; 将 scrollV 声明为如下实例变量;

但是,为了查看这是否由于某种原因导致问题,我也尝试使用:@property (nonatomic, retain) IBOutlet UIScrollView *scrollV; 并更改所有对“自我”的引用。

任何人都可以就为什么会发生这种情况提供任何建议吗?我目前正在使用以下函数将对象添加到 scrollV:

- (void)addTitle:(NSString *)title withText:(NSString *)text andPosition:(int *)yPos
{
    UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(4, *yPos, 312, 30)];
    [titleLabel setTextColor:kBlueColor];
    [titleLabel setText:[NSString stringWithFormat:@" %@", title]];
    [titleLabel setFont:[UIFont boldSystemFontOfSize:18]];

*yPos += titleLabel.frame.size.height;

// Rounds up the int
int tbHeight = (([text length] + 40 - 1) / 40);

tbHeight = 19 + (19 * tbHeight);

UITextView *textV = [[UITextView alloc] initWithFrame:CGRectMake(4, *yPos, 312, tbHeight)];
[textV setTextColor:kBlueColor];
[textV setFont:[UIFont systemFontOfSize:14]];
[textV setScrollEnabled:NO];
[textV setShowsVerticalScrollIndicator:NO];
[textV setEditable:NO];
[textV setText:text];

*yPos += textV.frame.size.height + 5;

[self.scrollV addSubview:titleLabel];
[self.scrollV addSubview:textV];
}

我已经添加了代码,以防万一这些由于某种原因干扰了 scrollV。运行应用程序时会显示所有视图,因此 scrollV 肯定存在并且在 IB 中很好地链接起来。

任何关于这个问题的建议都将非常受欢迎。

谢谢!

4

2 回答 2

0

该行有一个断点self.scrollV.userInteractionEnabled =YES

删除它并禁用断点

于 2012-11-13T13:42:55.397 回答
0

好的,我设法解决了这个问题,看来我不小心在界面生成器中将 UIView userInteractionEnabled 设置为 NO。这会将其应用于所有子视图,从而导致我的 scrollView 也为 NO。

于 2012-11-13T14:03:23.530 回答