【问题标题】:How to get center of the displayed area in UIScrollView?如何在 UIScrollView 中获取显示区域的中心?
【发布时间】:2014-06-13 12:40:38
【问题描述】:

设置一个高度为 1400UIScrollView 和多个UIButtons。单击每个UIButtons 时,我会显示一个小的UIView(在加载视图时隐藏),其中包含一些值。我想在UIScrollView的显示区域的中心显示这些UIViews

当我点击'TYPE'(在图片中的UIView后面)时,我会显示如下所示的视图:

但无论'TYPE'按钮在哪里,点击时我都想显示UIView,如下图所示(始终在显示区域的中心):

谢谢!

【问题讨论】:

  • 您是否有理由不将此视图添加到self.view?添加到self.view 将使其保持在滚动视图的顶部,并且中心坐标将是静态的(可以硬编码)。

标签: ios objective-c uiview uiscrollview frame


【解决方案1】:

试试这个

yourCustomAlert.center = self.view.center;

在你的滚动视图中

  1. 首先得到可见的滚动视图矩形

    CGRect visibleRect = CGRectMake(myScrollView.contentOffset.x, myScrollView.contentOffset.y, myScrollView.bounds.size.width, myScrollView.bounds.size.height)
    
  2. 然后得到它的中心

    CGPoint centerPoint = CGPointMake(visibleRect.size.width/2, visibleRect.size.height/2);
    
  3. 然后设置你的 alertView 的中心

    yourCustomAlert.center = centerPoint;
    

【讨论】:

  • 嘿,这不起作用,如果您仍然遇到问题,请更新您的问题。
  • 完美!我不知道如何获得可见的矩形偏移。谢谢!
  • CGRect visibleRect = CGRectMake(myScrollView.contentOffset.x, myScrollView.contentOffset.y, myScrollView.contentOffset.x + myScrollView.bounds.size.width, myScrollView.contentOffset.y + myScrollView.bounds.size .height) 应该是 CGRect visibleRect = CGRectMake(myScrollView.contentOffset.x, myScrollView.contentOffset.y, myScrollView.bounds.size.width, myScrollView.bounds.size.height)
【解决方案2】:

你的问题不是很清楚。但是,如果您希望隐藏的视图会出现在屏幕中心,尽管有 scrollView 边界,您可以使用

yourHiddenView.center = self.view.center; //If Parent class is a ViewController
//yourHiddenView.hidden = NO;

yourHiddenView.center = self.center; //If Parent class is a UIView
//yourHiddenView.hidden = NO;

并且,如果您希望隐藏视图位于ScrollView 的中心,请找到scrollView可见矩形 并找到它的中心

CGRect visibleRect;
visibleRect.origin = scrollView.contentOffset;
visibleRect.size = scrollView.bounds.size;

CGPoint scrollViewCenter = CGPointMake(visibleRect.size.width/2, visibleRect.size.height/2);

yourHiddenView.center = scrollViewCenter;
//yourHiddenView.hidden = NO;

【讨论】:

    猜你喜欢
    • 2011-01-28
    • 2017-01-12
    • 1970-01-01
    • 2021-05-13
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 1970-01-01
    • 2020-03-29
    相关资源
    最近更新 更多