猿问

请问关于swift 有什么函数可以获取到view的宽度?

swift 有什么函数可以获取到view的宽度


呼如林
浏览 1534回答 4
4回答

动漫人物

因为题主这两个 View 之间是用 Segue 连接的,所以可以给第一个 View 中加入prepareForSegue 方法来实现此功能。举个例子,我有两个 View,第一个叫做 View Controller,第二个叫做 Second View Controller,分别对应 ViewController.swift 和 SecondViewController.swift,则:Main.storyboard 的结构:(注意两个 View 之间要用 Modal 类型的 Segue 来连接,如果使用 Push 而且没有相应的 Navigation Controller 的话程序会停止响应)ViewController.swift 的内容(其实仅仅加了一个 prepareForSegue 方法):SecondViewController.swift 的内容:最后程序运行的结果:在第一个 View 中输入:点击 Send 按钮后在第二个 View 中显示:

慕码人8056858

在viewController里 增加一个IBOutlet 链接到你的自定义的view。获取一下它的frame属性就知道它的高宽了。setFrame来设置它的高宽

SMILET

其实动态获取字符串NSString的内容宽度高度最主要的还是API NSString类提供的一个方法:sizeWithFont: constrainedToSize例如:CGSize feelSize = [feeling sizeWithFont:[UIFont systemFontOfSize:12] constrainedToSize:CGSizeMake(190,200)];float feelHeight = feelSize.height;这样就可以根据自己定义的长高的最大限值来获取当前文本的size。

森林海

//初始化labelUILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];//设置自动行数与字符换行[label setNumberOfLines:0];label.lineBreakMode = UILineBreakModeWordWrap;// 测试字串NSString *s = @"这是一个测试!!!UIFont *font = [UIFont fontWithName:@"Arial" size:12];//设置一个行高上限CGSize size = CGSizeMake(320,2000);//计算实际frame大小,并将label的frame变成实际大小CGSize labelsize = [s sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];[label setFrame:CGRectMake:(0,0, labelsize.width, labelsize.height)];。。
随时随地看视频慕课网APP
我要回答