菜鸟教程小白 发表于 2022-12-13 07:28:14

ios - UIScrollView 3.5英寸屏幕


                                            <p><p>我为 iPhone 创建了一个应用程序,它非常适合 iPhone 5/5S/5C 屏幕。但是,我尝试在 iPhone 4/4S(较小的屏幕)上使用 ScrollView。 </p>

<p>我的 View 嵌入在导航栏 Controller 中,也位于标签栏 Controller 中。我的 ScrollView 位于两者之间的空间中,当它位于 iPhone 5/5S/5C 中时,我不希望它滚动,因为它已经是完美的尺寸了。这部分工作正常。</p>

<p>但是,当我在模拟器上以较小的屏幕尺寸测试它时,我希望它能够滚动,但它根本不滚动。</p>

<p>我的 ScrollView 有一个 IBOutlet,我在 .m 文件中使用以下代码行来设置 ScrollView 。 </p>

<pre><code>if (self.view.bounds.size.height == 568)
{
    ;
    _Scroller.frame = CGRectMake(0, 64, 320, self.view.bounds.size.height);
}
else
{
    ;
    _Scroller.frame = CGRectMake(0, 64, 320, self.view.bounds.size.height);
}

_Scroller.keyboardDismissMode = UIScrollViewKeyboardDismissModeInteractive;
;
</code></pre>

<p>我的 ViewController 中的 Adjust Scroll View Insets 也未勾选,因为它一直在 ScrollView 的顶部添加一个恼人的间隙。 </p>

<p>谁能帮我解决我哪里出错了?它快把我逼疯了!任何帮助都会很棒。我对 iOS 开发也很陌生。 </p>

<p>谢谢各位!</p>

<p>编辑:</p>

<p>我已经把 if 语句改成了这个,但还是不行:</p>

<pre><code>if (self.view.bounds.size.height == 568)
{
    ;
    _Scroller.frame = CGRectMake(-4, 64, 329, self.view.bounds.size.height);
}
else
{
    ;
    _Scroller.frame = CGRectMake(-4, 64, 329, self.view.bounds.size.height);
}

_Scroller.keyboardDismissMode = UIScrollViewKeyboardDismissModeInteractive;
;
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>这样使用:</p>

<pre><code>if ([ bounds].size.height &gt;= 568) //iphone 5/5c/5s/6/6 plus
{
//making ContentSize and frame&#39;s height same as not need of scrolling
//make changes in height if necessary
;
//make changes in height if necessary
_Scroller.frame = CGRectMake(0, 64, self.view.bounds.size.width, self.view.bounds.size.height-64);
}
else //iphone 4/4s
{
   //making ContentSize greater than frame&#39;s height as we need scrolling
   //make changes in height if necessary
   ;
   if([.systemVersion hasPrefix:@&#34;7&#34;]) //iOS 7.0 &gt;
   {
   //made changes in y as status bar height is counted
   _Scroller.frame = CGRectMake(0, 64, self.view.bounds.size.width, self.view.bounds.size.height-64);
   }
   else //iOS 6.1 &lt;
   {
      //made changes in y as status bar height not counted
      _Scroller.frame = CGRectMake(0, 44, self.view.bounds.size.width, self.view.bounds.size.height-64);
   }
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - UIScrollView 3.5英寸屏幕,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23080276/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23080276/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - UIScrollView 3.5英寸屏幕