如何根据子视图ID到达scrollview上的特定位置?

时间:2013-07-19 10:05:40

标签: objective-c uiscrollview

我正在尝试创建一个可以保存来自用户的消息字符串的应用,并且我将在UIView内显示该消息,这些消息将进入UIScrollView。现在,一旦创建了这些视图,它们就会有一个与之关联的消息ID。假设我点击了包含消息ID的链接,我希望应用程序在找到消息视图时将我重定向到scrollview中的特定位置。有谁知道这样做?

顺便说一句,我使用此代码将消息ID分配给视图:

- (void) getMessageId:(UIScrollView*) scrollView{
CGPoint point = CGPointMake( scrollView.contentOffset.x + 40, 20);
for ( UIView* childView in scrollView.subviews ) {
    if ( [childView isKindOfClass:[UIView class]] ) {
        if(CGRectContainsPoint([childView frame], point)) {
            [[NSUserDefaults standardUserDefaults] setObject:[NSString stringWithFormat:@"%i" , childView.tag] forKey:@"current_message"];
        }
    }
}
}

由于我在scrollview中有多个子视图(取决于消息的数量),我想在消息的特定位置启动视图(不要加载唯一的特定消息ALONE)

我可以使用[self.scrollView viewWithTag:messageId]吗?

1 个答案:

答案 0 :(得分:0)

这样做。获取一个包含所有消息ID的数组 与单击链接查找时的scrollview子视图(在scrollview上显示消息的顺序)相同的顺序 消息ID在数组中的位置以及使用消息ID 可以将contentOffset值设置为scrollview。