我有一个多行UILabel的字体大小,我想调整取决于文本的长度。 整个文本应该适合标签的框架而不截断它。 不幸的是,根据文档adjustsFontSizeToFitWidth属性“仅在numberOfLines属性设置为1时才有效”。 我试图确定使用调整的字体大小 -[NSString (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode] 然后递减字体大小直到适合。 不幸的是,这个方法在内部截断了文本以适合指定的大小,并返回所得截断string的大小。
在iOS 7中使用UIDatePicker元素和Storyboards时,我遇到了一些奇怪的事情。在Storyboard中,dateselect器的固定高度为162.但是实际上,元素占用的空间比这更大。 所以这 变成这样: 所以我必须把它放在下面,猜测和目测dateselect器实际使用的空间。 这是一个错误? 难道我做错了什么? 要清楚,dateselect器是完全透明的 – 不能找出解决办法。 顶部的白色背景是主要的UIView,灰色背景是UITableViewembedded在容器视图中的背景。
我有一个自定义的UITableViewCell子类。 我已经将我的单元格子类的contentView设置为一个自定义的UIView类,其中我重写-drawRect:并在那里做所有的绘图。 此外,我设置cell.contentView.opaque = NO为了实现透明度在某些细胞的区域(不幸的是,表背后的背景图像必须显示通过每个细胞在某些部分达到风格的效果,我知道这是性能受到打击,这一定是如此)。 问题:当我选中或突出显示(正在按下)时,仍然会看到默认的漂亮的蓝色渐变背景(在透明区域中)。 这掩盖了桌子背后的形象,这是不好的。 目标:为了防止出现蓝色渐变背景,但仍然能够从-[MyContentView drawRect:]内部检查cell.isSelected和cell.isHighlighted属性,以确定如何绘制自己的自定义select/突出显示。 我试过了: 设置cell.selectionStyle = UITableViewCellSelectionStyleNone有防止美丽的蓝色渐变select背景的预期效果,但也阻止了cell.isSelected和cell.isHighlighted属性被正确设置,这意味着我不能做我自己的自定义select/高光绘图 在单元格的-init或-prepareForReuse方法中设置cell.selectionBackgroundView = nil和cell.backgroundView = nil不会阻止蓝色渐变select背景 在-[MyContentView -drawRect:]方法中设置cell.selectionBackgroundView = nil 确实具有防止蓝色渐变select背景的预期效果,但是这看起来非常难看 覆盖 – [UITableViewCell setSelected:animated:]是一个无操作。 这并不具有防止蓝色渐变select背景的预期效果
根据UIKit diff文档 ,在ios9 / Swift 2中 var text: String! 已成为var text: String? 根据UITextField的文档,它特别说 This string is @"" by default. 我不明白这个改变的目的。 如果文本字段根本不存在,该属性是不是总是空string? 这个字段在什么时候返回一个空string? 一旦用户与它交互? 一旦它被添加到视图层次? 它什么时候返回nil ? 如果文本字段首先存在,那么假设文本属性也是一样安全的? 这似乎会导致很多查找/replace.text到.text! 我不知道文档中提到的是什么,所以也许有人会为了这个改变而有一些背景或帮助。
苹果文档指出: 要join外观代理API,请使用UI_APPEARANCE_SELECTOR在标题中标记外观属性select器。 在Objective-C中,可以使用UI_APPEARANCE_SELECTOR注释属性,如下所示: @property (nonatomic, strong) UIColor *foregroundColor UI_APPEARANCE_SELECTOR; 我如何在Swift中做同样的事情?
何时以及如何使用layoutIfNeeded ? 我知道当我们改变一个视图的布局时,我们可以调用setNeedsLayout来更新布局,但不知道什么时候应该使用layoutIfNeeded 。 注意:我在实际代码中使用了layoutIfNeeded ,但忘记了在什么情况下使用它。
例如:我有一个方法-myFooBarMethod:withFoo:bar:moreFoo:并在该方法的实现中,我想dynamic地获取它的名字,比如@"-myFooBarMethod:withFoo:bar:moreFoo: into NSString。方法签名的types。 我觉得这必须与select器做些什么。 我怎么能得到当前方法(执行代码的那个)的名称为NSString?
我遇到了一些有点奇怪的contentInsets 我有一个UITextView在我的故事板中有一个剩下的50个contentInset,因为我试图添加一些填充到我的uitextview 但是,在uitextview的底部会出现一个滚动条,如下面的testing所示: 我的印象是contentInset压缩uitextview而不引起这个水平滚动条,所以我怎样才能删除水平滚动条的需要,并使所有的东西 – 插入和uitextview中的所有文本 – 可见而不需要这个滚动条。 注意:我并没有问及防止水平滚动还是不显示滚动条(因此剪切文本) 非常感谢! 对于atomk(UITextView被称为ss) NSLog(@"Content Size Before %f",self.ss.contentSize.width); Logs: 280 CGSize size=self.ss.contentSize; size.width=size.width-50; [self.ss setContentSize:size]; NSLog(@"Content Size After %f",self.ss.contentSize.width); Logs: 230 添加的代码与添加代码之间没有明显的区别,所以出现了问题! (谢谢)
我正在寻找一种方法来添加padding属性到UIView。 理想情况下,我想避免将其分类并将其归类。 用法是这样的: myview.padding = UIEdgeInsetsMake(10, 10, 10, 10); 也可能有一个paddingBox属性,它将返回一个描述内部填充框大小和位置的CGRect 。 现在,如何实现这样的类别。 我最初虽然使用bounds ,但不幸的是bounds的大小链接到frame的大小(总是相同的)只有坐标可以不同。
我正在努力了解UIFont的点的大小究竟是什么意思。 这不是像素,它似乎不是标准的定义,它是关于1/72英寸。 我使用各种大小的字体-[NSString sizeWithFont:]来计算像素大小,并得到以下结果: | Point Size | Pixel Size | | ———- | ———- | | 10.0 | 13.0 | | 20.0 | 24.0 | | 30.0 | 36.0 | | 40.0 | 47.0 | | 50.0 | 59.0 | | 72.0 | 84.0 | | 99.0 | 115.0 | | 100.0 | 116.0 […]