标签: ios-autolayout

当我更改行数时,具有 rowHeight 的 UITableView UITableViewAutomaticDImension 不会更新

我有一个UITableViewCell固定在底部的描述标签,如下所示: 在此输入图像描述

点击描述标签可在和numberOfLines之间切换:30

- (void)awakeFromNib {
    [super awakeFromNib];
    [self setupView];
}

-(void) setupView
{

    UITapGestureRecognizer * gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(toggleNumberOfLines)];
    self.jobDescriptionLabel.userInteractionEnabled = YES;
    [self.jobDescriptionLabel addGestureRecognizer:gestureRecognizer];
}

- (void) toggleNumberOfLines {
    if(self.jobDescriptionLabel.numberOfLines != 0){
        self.jobDescriptionLabel.numberOfLines = 0;
    }else{
        self.jobDescriptionLabel.numberOfLines = kNumberOfLines;
    }
    [self.jobDescriptionLabel sizeToFit];
    [self layoutIfNeeded];
}
Run Code Online (Sandbox Code Playgroud)

当我点击标签时,行数确实发生了变化,但单元格不会扩展以容纳新的行数。我该如何解决?

折叠(默认):

在此输入图像描述

扩展:

在此输入图像描述

uitableview ios ios-autolayout uitableviewautomaticdimension

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

以编程方式添加时,rightAnchor 约束不适用 - swift

当我添加 rightAnchor 约束时,constant= 20 不适用。在leftAnchor就可以了

override init(frame: CGRect) {
    super.init(frame: frame)

    addSubview(collectionView)
    collectionView.translatesAutoresizingMaskIntoConstraints = false
    NSLayoutConstraint.activate([collectionView.leftAnchor.constraint(equalTo: leftAnchor, constant: 20),
                                 collectionView.topAnchor.constraint(equalTo: self.topAnchor),
                                 collectionView.rightAnchor.constraint(equalTo: rightAnchor, constant: 20),
                                 collectionView.heightAnchor.constraint(equalTo: self.heightAnchor)])
}
Run Code Online (Sandbox Code Playgroud)

有人能帮我吗?

constraints ios swift ios-autolayout

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

heightAnchor.constraint 不会改变视图的高度

我使用这个代码:

func show(){
    view.translatesAutoresizingMaskIntoConstraints = false
    view.leftAnchor.constraint(equalTo: view.leftAnchor, constant: 0).isActive = true
    view.topAnchor.constraint(equalTo: view.topAnchor, constant: 0).isActive = true
    view.heightAnchor.constraint(equalToConstant: view.frame.height - 300).isActive = true
    view.rightAnchor.constraint(equalTo: view.rightAnchor, constant: 0).isActive = true
}

func hide(){
    view.translatesAutoresizingMaskIntoConstraints = false
    view.leftAnchor.constraint(equalTo: view.leftAnchor, constant: 0).isActive = true
    view.topAnchor.constraint(equalTo: view.topAnchor, constant: 0).isActive = true
    view.heightAnchor.constraint(equalToConstant: view.frame.height + 300).isActive = true
    view.rightAnchor.constraint(equalTo: view.rightAnchor, constant: 0).isActive = true
}
Run Code Online (Sandbox Code Playgroud)

showfunction 工作正常,但hidefunction 不起作用并且heightAnchor不起作用。

constraints autoresize swift ios-autolayout nslayoutanchor

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

屏幕底部按钮:iPhone X 与普通屏幕

我正在尝试为 iPhone X 屏幕优化应用程序。目前,它在大多数屏幕上显示黑条或白条。作为示例,我将使用PaymentMethodsView.

PaymentMethodsView是一个UIView包含 1 或 2 个水平按钮的自定义StackView,superView 具有灰色背景。这StackView当前被限制为 16px 到超级视图(所有 4 个边)。目前它在 iPhone X 上看起来是这样的(在普通 iPhone 上,视图只是在屏幕底部:

在此处输入图片说明 我想在这里实现的是,灰色区域延伸到屏幕底部,而黄色区域现在位于整个视图的底部。(所以低 16px)

我可以通过使得到这个工作,Use Safe Area Layout Guide这个ViewController,制约了PaymentMethodsView中到的viewController0 to safe area在侧面,并0 to superview在底部。然后在它PaymentMethodsView本身中,我将所有StackView的约束更改为safe area而不是superview,并将底部约束更改为 0 而不是 16。这很好用,除了在普通 iPhone 上,底部 16px(在 StackView 下)消失并放置黄色按钮到屏幕底部。

我将如何解决这个问题?

  • 在 iPhone X 上:屏幕底部的灰色区域,按钮 0px 到 bottom safe area
  • 在普通 iPhone …

xcode ios swift ios-autolayout

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

如果没有显示图像,如何在标签上设置autolayout?

我有一个视图,在视图的顶部我已经放置了图像视图,如果帖子有"图像",它显示图像,但如果帖子没有图像,那么它不能.

现在我想设置如果没有图像,则位于图像视图底部的Label位于视图的顶部.所以,它看起来很完美.

这是场景,请调查一下.

> Image View | Label | Label | Label | Label | and so on...
Run Code Online (Sandbox Code Playgroud)

现在,如果没有图像,那么我的视图就是

>            | Label | Label | Label | Label | and so on...
Run Code Online (Sandbox Code Playgroud)

但是,我想使用Autolayout删除这个额外的空间,所以,我的视图看起来像这样

> | Label | Label | Label | Label | and so on...
Run Code Online (Sandbox Code Playgroud)

如何使用Autolayout进行设置.

请帮我.

sdk ios ios-autolayout

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

UITableViewCell在iOS 11中的行为有所不同

我已经以UITableViewCell编程方式完成了它并且在iOS 10中工作得很好.但是在使用iOS 11和XCode 9进行更新之后,它的行为有所不同.布局看起来如下所示.

在此输入图像描述

但是,如果我点击单元格然后重新排列并且看起来很好,如下所示.

在此输入图像描述

这里是代码 UITableViewCell

import UIKit
import SnapKit

class AboutCell: UITableViewCell {

    let roleLabel : UILabel = {
        var tablelabel = UILabel()
        tablelabel.font = UIFont (name: "Avenir Next Medium", size: 22)
        tablelabel.textAlignment = .center
        tablelabel.clipsToBounds = true
        tablelabel.translatesAutoresizingMaskIntoConstraints = false
        return tablelabel
    }()
    let nameLabel : UILabel = {
        let tablelabel = UILabel()
        tablelabel.font = UIFont (name: "Avenir Next Medium", size: 16)
        tablelabel.textAlignment = .center
        tablelabel.clipsToBounds = true
        tablelabel.translatesAutoresizingMaskIntoConstraints = false
        return tablelabel
    }()
    let …
Run Code Online (Sandbox Code Playgroud)

uitableview ios swift ios-autolayout

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

使用autolayout为表格视图单元格赋予0高度

我的数据源数组中有一些虚拟对象.

我不想在屏幕上显示它们.我也无法从数据源数组中删除它们.

我正在使用适当的约束来获得动态单元格高度.

有没有办法我可以使用这些虚拟对象显示0高度的单元格AutoLayout

uitableview ios ios-autolayout

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

如何使用"自动布局可视格式"将两个视图放在同一位置?

我想在Swift中使用"自动布局可视化格式"在同一位置放置两个视图,我该如何以优雅的方式做到这一点?

我成功使用了NSLayoutConstraint,但我希望我仍然可以使用可视化格式找到一种优雅的方式.

我的代码使用NSLayoutConstraint:

NSLayoutConstraint(item: greenView, attribute: .Left, relatedBy: .Equal, toItem: redView, attribute: .Left, multiplier: 1.0, constant: 0).active = true
NSLayoutConstraint(item: greenView, attribute: .Top, relatedBy: .Equal, toItem: redView, attribute: .Top, multiplier: 1.0, constant: 0).active = true
NSLayoutConstraint(item: greenView, attribute: .Right, relatedBy: .Equal, toItem: redView, attribute: .Right, multiplier: 1.0, constant: 0).active = true
NSLayoutConstraint(item: greenView, attribute: .Bottom, relatedBy: .Equal, toItem: redView, attribute: .Bottom, multiplier: 1.0, constant: 0).active = true
Run Code Online (Sandbox Code Playgroud)

ios autolayout swift ios-autolayout

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

如何自动布局标签

我想使用自动布局来布局我的标签。在iPad 10.5中可以正常工作。但是,当我转移到具有更大屏幕的任何其他版本的iPad时,这种设计就会失效。任何人,请帮助我解决此问题。

swift ios-autolayout

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