【问题标题】:How to get to the specific position on scrollview based on subview id?如何根据子视图 id 到达滚动视图上的特定位置?
【发布时间】:2013-07-19 10:05:39
【问题描述】:

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

顺便说一句,我使用此代码将消息 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"];
        }
    }
}
}

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

我可以使用[self.scrollView viewWithTag:messageId] 做到这一点吗?

【问题讨论】:

    标签: objective-c uiscrollview


    【解决方案1】:

    这样做。取一个包含所有消息 ID 的数组 与滚动视图子视图相同的顺序(在滚动视图上显示消息的顺序),无论何时单击链接查找 消息 id 在数组中的位置,并使用消息 id 你 可以为滚动视图设置 contentOffset 值。

    【讨论】:

      猜你喜欢
      • 2015-09-24
      • 1970-01-01
      • 2017-10-05
      • 1970-01-01
      • 1970-01-01
      • 2014-02-24
      • 1970-01-01
      • 2016-06-29
      • 1970-01-01
      相关资源
      最近更新 更多