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给的图,根据数据来决定是空心圆圈还是实心圆圈。 但是我不想自定义,麻烦!然后我就尝试了一件事,试着能否打出圆圈,发现是可以的。 "● " ,"○ " 圆圈在此,那就方便了,富文本走一个。
/// 左侧圆圈富文本
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——富文本文字的简单使用