我收到了有关用户界面滚动视图的问题
。
故事是我有一个名为图表视图的UIView
,我通过重写方法绘制Rect()
自己重新绘制它。绘图的内容是动态生成的。所以直到运行时我才知道它的大小。问题是我如何/在哪里可以动态设置其超级视图(滚动视图)的内容大小?对此有什么想法吗?
- (void)viewDidLoad
{
[super viewDidLoad];
// not this way. it's fixed size.....
ChartsView *chartsView = [[ChartsView alloc]initWithFrame:CGRectMake(0, 0, 320, 800)];
self.scrollView.contentSize = chartsView.frame.size;
[self.scrollView addSubview:chartsView];
}
swift (2.0)
@IBOutlet weak var btnLatestButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
let height = btnLatestButton.frame.size.height
let pos = btnLatestButton.frame.origin.y
let sizeOfContent = height + pos + 10
scrollview.contentSize.height = sizeOfContent
}
当然,以上是当您在滚动视图上只有固定数量的视图时。IOS Rocks方法可用,但对我来说不好,创建了更多的空间,然后我需要。
let lastView : UIView! = scrollview.subviews.last
let height = lastView.frame.size.height
let pos = lastView.frame.origin.y
let sizeOfContent = height + pos + 10
scrollview.contentSize.height = sizeOfContent
不能100%保证scrollView.subviews数组中的最后一个对象将返回滚动视图中y轴原点最高的对象。子视图数组按Z索引排列(即子视图数组中的最后一个对象将是堆叠最高的对象,并且将是滚动视图的子视图中最顶层的子视图。相反,更准确的方法是使用一个基本的排序函数来遍历子视图,并获得具有最高y坐标原点的对象。
Swift 4
extension UIScrollView {
func updateContentView() {
contentSize.height = subviews.sorted(by: { $0.frame.maxY < $1.frame.maxY }).last?.frame.maxY ?? contentSize.height
}
}
用法(在< code > viewDidLayoutSubviews 中或每当您的内容大小更新时):
myScrollView.updateContentView()
一个更简单的方法
- (void)viewDidLoad
{
float sizeOfContent = 0;
UIView *lLast = [scrollView.subviews lastObject];
NSInteger wd = lLast.frame.origin.y;
NSInteger ht = lLast.frame.size.height;
sizeOfContent = wd+ht;
scrollView.contentSize = CGSizeMake(scrollView.frame.size.width, sizeOfContent);
}
我有一个页面,需要动态创建一个iframe并将其粘贴到页面上的div中。我创建iframe的方式如下: 根据某些条件,我需要:A)将iframe src设置为其他页面,或者B)动态地向iframe添加一些HTML。 我有选项A的罚款,但选项B抛出了安全错误: 在尝试设置HTML之前,是否需要在动态iframe上设置?我怎么会那么做呢?有没有更简单的方法将动态内容附加到动态iframe中? 提前道谢
各位开发人员,我在Interface Builder(Xcode5/iOS 7)中遇到了自动布局的问题。这是非常基本和重要的,所以我认为每个人都应该知道这是如何运作的。如果这是Xcode中的一个bug,那就是一个关键的bug! 因此,每当我有这样的视图层次结构时,我就会遇到麻烦: UIScrollView有坚实的约束,例如,每边50像素(没有问题)。然后我将顶部空间约束添加到UILabel(没问题
我遇到了内容视图高度限制的问题。所有标签都有动态高度,即没有固定高度。我在某个地方读到将高度设置为等于滚动视图高度。 ViewController的高度目前是870px,scrollview的高度是757px。我不知道如何在AutoLayout中设置高度,因为我无法在某一点后滚动。 我首先设置了UIScrollView,然后添加UIView作为UIScroll View的子级,然后添加了2个UII
问题内容: 我一直在环顾四周,无法看到任何快速相关的方法来执行此操作。我试图让我的UIWebViews高度是动态的。我有一个UIWebView,它使用loadHtmlString函数加载数据。事实是,每次我加载具有不同长度的不同字符串时,都会从sqlite数据库加载数据,并且Web视图自然会获得不同的高度。 现在,我需要知道如何将UIWebView设置为正确的高度,以便将我的下一个内容加载到web
运动内容 有关运动内容的更多信息,请参见“运动内容”。 以下运动内容已在 A300 中: 跑步 行走 骑自行车 力量训练 小组练习 其他室内活动 其他户外活动 游泳 在 Flow 网络服务上,您可以添加新运动内容,并将这些内容同步到 A300 上,通过这种方式可以创建一份您经常进行的所有运动的列表。查看Flow 网络服务中的“运动内容”的更多信息。 如果您在第一次训练前已在 Flow 网络服务上编
我有: < li >应该可以在横向和纵向模式下工作的应用程序。 < li >在顶部显示全尺寸滚动视图。 < li >固定宽度和高度的滚动视图中的某些视图。(增加了H和W约束) < li >设置为在滚动视图中在容器中水平居中查看。(根据约束条件添加) 我知道解决这个问题的唯一方法是设置尾随和前导约束。但是对于不同的iPhone(5.5"、4.7"、4"),我需要设置不同的尾随和前导约束。 如何消除此