UIScrollView滚动问题(无法设置userInteraction或查找框架)

时间:2012-11-13 12:48:26

标签: iphone objective-c xcode uiscrollview interface-builder

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

Not changing

我已经打印出许多值来检查发生了什么,我感到很困惑:

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

(lldb)p self.scrollV.contentSize
(CGSize)$ 4 =(宽度= 320,高度= 479)

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

我发现帧属性没有显示很奇怪,但是当我单独打印出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声明了如下的实例变量:

但是,为了查看这是否由于某些原因导致问题我还尝试使用: @property(非原子,保留)IBOutlet UIScrollView * scrollV;并将所有引用更改为“self。”。

任何人都可以提出任何有关为什么会这样做的建议吗?我目前正在使用以下函数向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中很好地链接。

对此事的任何建议都会非常受欢迎。

谢谢!

2 个答案:

答案 0 :(得分:0)

self.scrollV.userInteractionEnabled =YES

处有一个断点

删除它并禁用断点

答案 1 :(得分:0)

好的,我设法解决了这个问题,看来我偶然在界面构建器中将UIView userInteractionEnabled设置为NO。这会将此应用于所有子视图,从而导致我的scrollView也为NO。