【问题标题】:How to display NSArray data fetched from web in scrollview and expand+update it in Objective C?如何在滚动视图中显示从 Web 获取的 NSArray 数据并在 Objective C 中扩展+更新它?
【发布时间】:2023-03-09 20:12:01
【问题描述】:

我从网上获取了一些数据,字符串数据存储在 NSArray 中,如下所示:

"Player one:",
"\n Score:",
"5667",
"3445",
"0233",
"\n Game Name:",
"Super Mario Bros",
"Monster in my house",
"Jackle"

数据会像这样显示在屏幕上:

        **Player One**

Score:            Game Name:

5667              Super Mario Bros
3445              Monster in my house
0233              Jackle

我也尝试在 UIView 和 UIScrollView 上放置空白标签。因此,当“分数”更新时,它会覆盖 UILabel 值。但是如果用户在线,我想在屏幕上显示最多 10 个玩家(如上面的玩家)数据。这意味着屏幕上可能只有一个用户记分牌,或者可以显示 5 或 10 个用户记分牌。

所以,问题是如何根据我在屏幕上显示的数据量来扩大或缩小滚动视图。我应该把空白的 UILabels 放在哪里,这样 scollview 就不会显示空白的长白页?有什么办法吗?我试过放置 UILabel,但这不是完美的解决方案,因为我遇到了不必要的长白页的问题。

简而言之,有什么方法可以显示这些数据并自动扩展和缩小滚动视图?或者有没有更好的方法来解决这个问题?

【问题讨论】:

    标签: ios objective-c iphone uiscrollview


    【解决方案1】:

    你可以在 UIScrollView 里面放一个 UITableView 并设置它的高度:

       [[self yourTableView] setFrame:CGRectMake(yourTableView.frame.origin.x,0, yourTableView.frame.size.width, 50 *yourArray.count)]; //let's say your cell's height is 50
    

    // yourArray.count 根据您的在线用户数反映您将拥有的行数

    每个单元格(行)将包含一个在线播放器。您可以添加自定义单元格以获得更用户友好的设计:D

    每次更新数据源(数组)时使用上述方法,并让 UIScrollView 也反映这些修改:

       [yourScrollView setContentSize:CGSizeMake(yourScrollView.size.width, yourTableView.frame.origin.y + yourTableView.frame.size.height+35 )]; //let's say we add just 35 as white space...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-29
      • 1970-01-01
      • 2016-09-09
      • 2018-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多