4 回答
TA贡献1891条经验 获得超3个赞
因为题主这两个 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 中显示:
TA贡献1772条经验 获得超8个赞
在viewController里 增加一个IBOutlet 链接到你的自定义的view。
获取一下它的frame属性就知道它的高宽了。
setFrame来设置它的高宽
TA贡献1820条经验 获得超2个赞
其实动态获取字符串NSString的内容宽度高度最主要的还是API NSString类提供的一个方法:
sizeWithFont: constrainedToSize
例如:
CGSize feelSize = [feeling sizeWithFont:[UIFont systemFontOfSize:12] constrainedToSize:CGSizeMake(190,200)];
float feelHeight = feelSize.height;
这样就可以根据自己定义的长高的最大限值来获取当前文本的size。
TA贡献1934条经验 获得超2个赞
//初始化label
UILabel *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)];
。。
- 4 回答
- 0 关注
- 492 浏览
添加回答
举报