swift——一些有用的小Tips

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——富文本文字的简单使用

后续的各种小Tips会陆续更新上来!大家如果有什么Tips也可以留言给我,互勉!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值