UITableView
有时候UI需要tableView距离上方的元素间隙为0,加上这段代码就行
self.tableView.tableHeaderView = UIView.init(frame: CGRect.init(x: 0, y: 0, width: 0, height: CGFloat.leastNormalMagnitude))
UI会设计出各种颜色的箭头,如下图。
向右的箭头为蓝色
一般情况都会选择自定义Cell,但是Cell特别简单完全不想自定义,就可以自定义accessoryView,上代码。
cell.accessoryType = .none cell.accessoryView = getBlueRightArrow() func getBlueRightArrow() -> UIView{ let vi = UIImageView.init(frame: CGRect.init(x: 0, y: 14, width: 16, height: 16)) vi.image = UIImage.init(named: "mine_RightArrow") return vi }
上图就是用这种方法实现的效果。
有时候一些特殊的cell可以不必自己去画(自定义)
UI要的效果
这是UI给的图,根据数据来决定是空心圆圈还是实心圆圈。
但是我不想自定义,麻烦!然后我就尝试了一件事,试着能否打出圆圈,发现是可以的。
" " ," " 圆圈在此,那就方便了,富文本走一个。
/// 左侧圆圈富文本func leftCircle(_ label: UILabel, attrTitle:String){ label.textAlignment = .left label.textColor = UIColor.textBlack label.font = UIFont.systemFont(ofSize: 15) let attrStr = NSMutableAttributedString.init(string: attrTitle ) /// 圆圈长度为1 attrStr.addAttribute(NSForegroundColorAttributeName, value:UIColor.mainBlue, range:NSRange.init(location:0, length: 1)) label.attributedText = attrStr }/// 调用leftCircle(label, attrTitle: " 你的标题")
有时候一些特殊的cell的配图不能用文字打出来,但还是不想去画图,用cell自带的image又达不到UI要求的效果(间距问题),怎么办?还是富文本!
效果图
func imageTitleLabel(_ label: UILabel, _ imageStr: String) { label.textAlignment = .left let attributes = [ NSFontAttributeName: UIFont.systemFont(ofSize: 15.0), NSForegroundColorAttributeName: UIColor.textBlack, /// 向上偏移量 NSBaselineOffsetAttributeName: 5 ] as [String : Any] let attachment = NSTextAttachment() attachment.image = UIImage.init(named: imageStr) attachment.bounds = CGRect( x: 0, y: 0, width: attachment.image!.size.width, height: attachment.image!.size.height ) let attributedStringWithImage = NSAttributedString(attachment: attachment) let string = NSMutableAttributedString() string.append(attributedStringWithImage) string.append(NSAttributedString(string: " \(label.text!)", attributes: attributes)) label.attributedText = string }
上面的图就是用富文本做的!
将section的footer、header 之间的间隙设置为透明色,保证与背景色一致
func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) { view.tintColor = UIColor.clear } func tableView(_ tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) { view.tintColor = UIColor.clear }
UITextField
修改placeholder的字体颜色和大小
field.attributedPlaceholder = NSAttributedString.init(string:"蓝色且字体大小为15的请输入", attributes: [NSForegroundColorAttributeName:UIColor.blue, NSFontAttributeName:UIFont.systemFont(ofSize:15)])
关于Label的富文本可以去看看这个swift——富文本文字的简单使用
作者:Bart_Simpson
链接:https://www.jianshu.com/p/5feac2869a8d
共同学习,写下你的评论
评论加载中...
作者其他优质文章