相关疑难解决方法(0)

如何在隐藏视图时使用自动布局移动其他视图?

我在IB中设计了自定义Cell,将其子类化并将我的插座连接到我的自定义类.我在单元格内容中有三个子视图:UIView(cdView)和两个标签(titleLabel和emailLabel).根据每行可用的数据,有时我想在我的单元格中显示UIView和两个标签,有时只有两个标签.我想要做的是设置约束,如果我将UIView属性设置为隐藏或我将从superview中删除它,两个标签将移动到左侧.我尝试将UIView前导约束设置为10px的Superview(单元格内容)和UILabels将10 px的约束引导到下一个视图(UIView).稍后在我的代码中

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(IndexPath *)indexPath {
...
Record *record = [self.records objectAtIndex:indexPath.row];

if ([record.imageURL is equalToString:@""]) {
     cell.cdView.hidden = YES;
}
Run Code Online (Sandbox Code Playgroud)

我隐藏了我的cell.cdView,我希望标签向左移动,但是它们在Cell中保持相同的位置.我试图从superview中删除cell.cdView,但它也没有用.我附上图片来澄清我的意思.

细胞

我知道如何以编程方式执行此操作,而我不是在寻找解决方案.我想要的是在IB中设置约束,并且如果删除或隐藏其他视图,我希望我的子视图将动态移动.是否可以在具有自动布局的IB中执行此操作?

.....
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch interface-builder ios autolayout

321
推荐指数
12
解决办法
16万
查看次数

在纵向和横向中使用AutoLayout

自动布局,尽管它是好的,让我疯狂的约束.我有在IB设计的肖像模式,但我无法获得所需的横向方向.

布局

请注意,当方向更改为横向时,UIImageView块之间的间距会减小,并且SAMPLE TEXT更改的文本对齐方式会右对齐.

目前,我已经为它添加了一些限制.但是,我需要保持UIImageView块之间的空间固定,因此它看起来像肖像和景观中的精细.我需要将它均匀地分布在肖像中并在景观中压缩(如上图所示).同样,目前我的约束会调出文本,但它不会将其保持在屏幕的中心并且右对齐.

自动布局可以实现这一点吗?如果是这样,怎么样?非常感谢.

xcode objective-c ios autolayout

26
推荐指数
2
解决办法
2万
查看次数

UIView addSubview自动布局无法正常工作

我以编程方式创建了一个UIView并将NSLayoutConstraint添加到它并且它可以工作,然后将其添加为视图控制器视图的子视图.现在我需要从superview中删除此视图,稍后再添加一次.但是如果我再次添加它,布局将不再起作用self.view addSubview.如何使布局再次工作?

uiview ios autolayout

4
推荐指数
1
解决办法
1万
查看次数

uitableview高度在swift ios中不会动态变化?

我遇到了麻烦.我有一个城市列表,我想显示城市UITableView,我已禁用UITableView的滚动,因为我不想显示滚动.

当我动态更改为UITableView的高度时,它不会更改,UITableView不会显示所有城市.代码下方.请看看.

import UIKit

class FlightDetailsOneWayViewController: UIViewController {

var flightDetailArr:[FlightDetailsOneWay]  =  [FlightDetailsOneWay]()

@IBOutlet var tableView: UITableView!

@IBOutlet var scrollview: UIScrollView!

override func viewDidLoad() {
    super.viewDidLoad()

    flightDetailArr.append(FlightDetailsOneWay(depCity: "London"))

    flightDetailArr.append(FlightDetailsOneWay(depCity: "China"))

    flightDetailArr.append(FlightDetailsOneWay(depCity: "Singapore"))

    flightDetailArr.append(FlightDetailsOneWay(depCity: "Dubai"))


    self.tableView.scrollEnabled = false

    var cellHeight  = CGFloat(self.tableView.rowHeight)

    var totalCity   = CGFloat(flightDetailArr.count)

    var totalHeight = cellHeight * totalCity

    self.tableView.frame.size.height = CGFloat(totalHeight)


}

  override func didReceiveMemoryWarning() {
       super.didReceiveMemoryWarning()
      // Dispose of any resources that can be recreated.
   }


   func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int   { …
Run Code Online (Sandbox Code Playgroud)

uitableview ios swift

2
推荐指数
1
解决办法
1万
查看次数

UIImageView上的宽度和高度NSLayoutConstraints不起作用

我在View Controller的UIImgeView实例上设置.Width和.Top NSLayoutConstraints updateViewConstraints()。在XCode可视调试器中,我可以看到约束实际上已设置,但是由于某些原因,约束没有被使用(?),它们显示为un(内容大小),并且显示为灰色。当我使用NSLog输出约束时,我也可以看到它们已设置,但是以某种方式图像保持原始大小...这是什么意思?

constraints in parent: [<NSLayoutConstraint:0x7b379590 UIImageView:0x7af897b0.centerX == UIView:0x7b37d2e0.centerX>, 
                        <NSLayoutConstraint:0x7b36e3d0 V:|-(0)-[UIImageView:0x7af897b0]   (Names: '|':UIView:0x7b37d2e0 )>]
constraints in view: [<NSContentSizeLayoutConstraint:0x7ae892b0 H:[UIImageView:0x7af897b0(301)] Hug:251 CompressionResistance:750>, 
                      <NSContentSizeLayoutConstraint:0x7ae834e0 V:[UIImageView:0x7af897b0(365)] Hug:251 CompressionResistance:750>]
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

设置约束的代码:

/// Image view with the character + ellipse
@IBOutlet weak var charImageView: UIImageView!

override func updateViewConstraints() {
      super.updateViewConstraints()
      charImageView.widthLayoutConstraint?.constant = 301.0
      charImageView.heightLayoutConstraint?.constant = 365.0
}
Run Code Online (Sandbox Code Playgroud)

我用来获取扩展名widthLayoutConstraintheightLayoutConstraint

extension UIView{
  /**
   Gets the width layout constraint defined as the NSLayoutConstraint whose first item is self and first attribute is Height …
Run Code Online (Sandbox Code Playgroud)

layout constraints interface-builder ios swift

1
推荐指数
1
解决办法
2457
查看次数