首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >情节提要约束:替换视图;调整滚动视图高度- Swift 3

情节提要约束:替换视图;调整滚动视图高度- Swift 3
EN

Stack Overflow用户
提问于 2018-04-16 16:50:05
回答 2查看 439关注 0票数 0

我通过故事板创建了以下布局。它由滚动视图组成,滚动视图的高度取决于内容的高度。根据if条件,我必须显示红色视图或蓝色视图。因此,当显示红色视图时,滚动视图的高度应设置为红色视图,而当显示蓝色视图时,应将红色视图的高度设置为0。

我不能设置红色和蓝色视图的高度约束,因为它们的高度是其组件的高度之和,这是自动计算的(而且,它根据来自API的数据而变化)。

我不想使用容器视图。这可以完全通过约束来完成吗?

编辑:我希望约束是支持这一点的东西,在那里我可以用蓝色视图替换红色视图:

EN

回答 2

Stack Overflow用户

发布于 2018-04-16 17:02:46

我猜你可以在故事板中给出所有三个UI控件的固定高度。并且更改在稍后的代码中是动态的。按照您的要求。从接口构建器中选择高度约束,并将其导出。所以,当你想改变视图的高度时,你可以使用下面的代码。

代码语言:javascript
运行
复制
UIObjectHeightConstriant.constant = Height //(any value)
票数 0
EN

Stack Overflow用户

发布于 2018-04-16 17:59:45

你可以使用ScrollView的框架集,它非常适合你。

click here

代码语言:javascript
运行
复制
class ViewController: UIViewController
{
   @IBOutlet weak var ScrollView : UIScrollView!
   @IBOutlet weak var ViewRED : UIView!
   @IBOutlet weak var ViewBLUE : UIView!

  @IBOutlet weak var ContentView : UIView!

 override func viewDidLoad()
 {
    super.viewDidLoad()

   self.ScrollView.frame = CGRect(x: ContentView.frame.origin.x, y: 
   ContentView.frame.origin.y, width: self.ContentView.frame.size.width, 
   height:self.ContentView.frame.size.height)

   frameset()

 }

  func frameSet()
  {
   if view == ViewRED // Here just mention condition for example you can set your condition
   {
      self.ScrollView.frame = CGRect(x: ViewRED.frame.origin.x, y: 
      ViewRED.frame.origin.y, width: self.ViewRED.frame.size.width, 
      height: self.ViewRED.frame.size.height)
   }

   if view == ViewBLUE//Here just mention condition for example you can set your condition
  {
     ViewRED.isHidden = true

     self.ScrollView.frame = CGRect(x: ViewBLUE.frame.origin.x, y: 
     ViewRED.frame.origin.y, width: self.ViewBLUE.frame.size.width, 
     height: self.ViewBLUE.frame.size.height)
  }
 }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49853176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档