Tag: 自动布局

排列三个UILabels彼此相邻,每个标签可以是多行

我正在做一个项目,我需要将3 UILabels排列在一起。 让我用一个例子来解释一下。 我有例如下面的句子。 "Tim Moore commented on the little bear story"现在我的三个UILabels将包含: LABEL 1 –> Tim Moore LABEL 2 –> commented on LABEL 3 –> the little bear story 另一个例子: Dave Smits likes the status "We and only we can me a knew future and only we nobody else can make changes, so don't stop […]

UITableViewCell中的约束animation启动不正确

我遇到了一个问题,我通过调整自动布局约束来在表格单元格中设置一个简单UIView的大小。 当我第一次启动桌子时,一切都被打破了。 如果我重新加载表,它运作的很好。 这是一个只有几行代码的单一视图控制器。 请下载这个演示项目来看看它的行动。 这是我的整个UIViewController中的代码: import UIKit class TableCell: UITableViewCell { @IBOutlet weak var constraintRedBarWidth: NSLayoutConstraint! @IBOutlet weak var labelTitle: UILabel! @IBOutlet weak var viewBarArea: UIView! @IBOutlet weak var viewRedBar: UIView! } class ViewController: UIViewController { @IBOutlet weak var tableView: UITableView! var tableData : [CGFloat] = [1, 0.90, 0.70, 0.80,0.50] //percentages override func viewDidLoad() […]

UITableView不滚动,但足够的高度

我正在构build一个Storyboard,其中包含一个包含Table View的Scroll View。 我做的第一件事是禁用滚动的表视图,否则我们会得到两个嵌套的滚动条,erk! 但是,这是我的问题,我希望桌面视图的高度等于其单元格高度的总和。 (单元格高度是各种各样的,因为它们显示注释)。 PS:对于dynamic细胞高度,我用这个: self.commentsTableView.estimatedRowHeight = 90.0 self.commentsTableView.rowHeight = UITableViewAutomaticDimension 简而言之:我想要一个表视图行为像一个高度variables列表。

不同的iPhone设备与单个故事板通过使用Xcode 8

参照我以前提出的问题, 为iPhone和iPad保留单个故事板 我完成了上述问题。 我通过使用单个故事板成功创build了iPhone和iPaddevise 不同的性状 但现在我的问题是,我想根据不同的iPhone屏幕大小制作button的不同的宽度和高度以及所有相关的限制。 如果我使用“不同性状”,它将更新iPhone的所有屏幕尺寸的button。 例如: iPhone 6:我想从superview设置button顶部约束是100 iPhone 5s:我想从superview设置button顶部约束是60 请build议我这个。 任何帮助或build议表示赞赏。

Google地图信息窗口根据内部内容resize

我使用这种方法创build自定义信息窗口- (UIView *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker基于UIStoryboard使用Autolayout。 我预计部分内部视图将会因为实际的文本信息被接收而resize,信息窗口的最终大小将与IB的视图不同。 其实,结果我的InfoWindow视图尝试全屏大小,没有什么帮助解决这个问题。 玩autoresizingMask不会改变任何东西,与设置Hugging Priority相同的结果。 唯一的办法是设置一个固定大小的约束,我已经做了这个宽度。 但是对于高度,我需要根据内部内容的实际大小dynamic计算大小。 更新:从故事板添加屏幕截图 更新2 :带有2个滚动视图的示例testing,使用重写的方法intrinsicContentSize : – (CGSize)intrinsicContentSize { [self layoutIfNeeded]; return self.contentSize; } 内部UIScrollView通过所有4边连接到基本滚动视图 内部UIScrollView只附加在顶部和左侧 示例testing视图层次结构 正如你所看到的全屏幕根UIScrollView (蓝色边框)仍然存在。 而内部的UIScrollView (绿色)对它没有影响。 它仍然有全屏幕的大小

用约束animationUIView框架

我有一个UIView中的一个元素的约束,说它应该总是从视图的底部10像素。 然后,我试图为这个视图的高度设置animation,这样看起来就像在屏幕上滑动一样。 根据约束条件,元素始终应该距离视图底部10个像素。 当我像这样添加视图时,这是真实的… printView *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"printView"]; [self addChildViewController:vc]; vc.view.frame = CGRectMake(0, 60, vc.view.frame.size.width, HEIGHT); vc.view.layer.masksToBounds = FALSE; [vc.view.layer setShadowOffset:CGSizeMake(0.0, 5.0)]; [vc.view.layer setShadowOpacity:0.8]; vc.view.layer.shadowColor = [[UIColor blackColor] CGColor]; vc.view.layer.shadowRadius = 8; vc.view.clipsToBounds = TRUE; [self.view insertSubview:vc.view aboveSubview:docWebView]; 我可以将HEIGHT更改为任何我想要的元素总是从视图底部10个像素。 当我尝试对高度进行animation处理时,问题就出现了 printView *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"printView"]; [self addChildViewController:vc]; vc.view.frame = CGRectMake(0, 60, vc.view.frame.size.width, 0); vc.view.layer.masksToBounds […]

在Swift中,在运行时更改Autolay约束UIView的框架

例如,我使用这段代码来改变名为Propo的UIView的框架位置: self.Propo.frame.origin.x -= self.view.frame.width ( Propo在Storyboard中有约束) 但是,当应用程序视图消失并重新出现时, UIView会将其自身重置为原来的位置。 我该如何解决呢? 我想让UIView保持其位置,当我改变它的编程。 我已经尝试updateViewConstraints()的东西附加…

UITableView断断续续不滚动图像或内容获取

所以我有这个UITableView从内存中获取它的数据(已经预先加载,没有请求正在滚动,所有的东西都被加载之前视图正在布局)。 每个单元格根据UITextView和Autolayout中的文本数量dynamic计算高度。 细胞是从一个笔尖加载和重用细胞工作正常(至less我希望如此)。 在计算行高时,我使用了UITableViewAutomaticDimension,所以我不强制单元格布局两次,就像在iOS 8之前必须这样做。 这里是我填充单元格和计算高度的相关方法: – (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { NSString *cellType = [self reuseIdentifierForIndexPath:indexPath]; if ([cellType isEqualToString:kLoadingCell]) return kLoadingCellHeight; else if ([cellType isEqualToString:kOfflineCell]) return kOfflineCellHeight; else if ([cellType isEqualToString:kFootprintListHeaderCell]) return kHeaderCellHeight; else if ([cellType isEqualToString:kFootprintCellUnsynced]) return kUnsyncedCellHeight; else if ([cellType isEqualToString:kShowFullTripCell]) return kShowFullTripCellHeight; else if ([cellType isEqualToString:kFootprintOnMapCell]) return kFootprintOnMapCellHeight; else { return […]

UITableViewCell四舍五入错误与NSAutoresizingMaskLayoutConstraint,但大小正确设置在故事板和heightForRowAtIndexPath:

我想使用AutoLayout在我的表格视图单元格中configuration子视图,并在理想的情况下,希望表视图单元格,以尽可能高,以包含所有的子视图。 然而,这看起来不可能,因为单元格的高度是在单元格被实际创build之前确定的。 所以,现在,我只看了我设置的约束条件,并计算了包含所有内容的总高度,并将其设置在故事板中作为此特定TableViewCell原型单元格的行高度,同时我也在tableView:heightForRowAtIndexPath:返回此高度tableView:heightForRowAtIndexPath:方法。 现在,我的表格视图单元格看起来像这样(从故事板的截图): 有两个没有显示大小的约束,它们的大小都是10(button顶部容器视图以及滑块和标签中间的距离)。 从上到下发生以下距离: 10(距离) 50(button高度) 20(距离) 20(标签高度) 10(距离) 30(滑块的高度) 20(距离) 导致总高度为160。 这正是我在这个单元的检查员所设定的: 但是从第一个屏幕截图中可以看到,Interface builder抱怨约束是冲突的(这就是为什么它们显示为红色)。 如果我把高度设置为161,那么IB是满意的,但这是错误的。 另外,如果我这样做,由于冲突约束,我在运行时会遇到exception: Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't […]

正确地使用Interface Builder和Autolayout在UIScrollView中调整UILabel的大小?

我已经在界面构build器中创build了一个简单的视图设置。 以下是它的外观: 视图层次结构很简单: view – scrollView — label 滚动视图显示grey背景锚定到其超级视图顶部,前导,尾部和底部约束为0。 标签显示为yellow背景,并显示约束。 此外,标签的横向和纵向都拥有content hugging priority为1000 content hugging priority ,横向和纵向的content compression resistance priority均为1000 。 在纵向方向上,标签尺寸正确: 然而,在横向方向上,标签的横向尺寸不正确(我打算用标签来填充屏幕的宽度,如图所示,限制较less): 如何在水平方向上将此标签正确地水平放置?