美文网首页
iOS实战【好书】之评分栏

iOS实战【好书】之评分栏

作者: xiongsirui | 来源:发表于2016-07-01 02:41 被阅读52次

    评分栏

    由于好书中需要有评分栏选项,具体效果如下:


    image.png

    有可第三方Kit是LDXScore,头文件接口代码如下:

    #import <UIKit/UIKit.h>
    IB_DESIGNABLE
    @interface LDXScore : UIView
    /* 展示的星数 */
    @property (nonatomic, assign) NSInteger show_star;
    @property (nonatomic, assign) CGFloat show_score;
    /* 星星之间的间隔 */
    @property (nonatomic, assign) CGFloat space;
    /* 距离左边的间距 */
    @property (nonatomic, assign) IBInspectable CGFloat padding;
    /* 最多的星数,默认为5 */
    @property (nonatomic, assign) IBInspectable NSInteger max_star;
    /* 是否支持选择星数 */
    @property (nonatomic, assign) IBInspectable BOOL isSelect;
    @property (nonatomic, strong) IBInspectable UIImage *normalImg;
    @property (nonatomic, strong) IBInspectable UIImage *highlightImg;
    @end
    

    可以调用如上属性,包括最大最小星星数目、是否可选以及该栏的位置信息。
    在点击评分按钮时,需要添加一行该栏,并在第二次点击时有把该栏收起;需要添加一个实例变量如下:

    var showScore = false
    

    此时可以定义点击cell时的方法:

        func tableViewSelectScore(){
            self.tableView?.beginUpdates()
            let tempIndexPath = [NSIndexPath(forRow: 2, inSection: 0)]
            
            if self.showScore{
                self.titleArray.removeAtIndex(2)
                self.tableView?.deleteRowsAtIndexPaths(tempIndexPath, withRowAnimation: .Right)
                self.showScore = false
            }else{
                self.titleArray.insert("", atIndex: 2)
                self.tableView?.insertRowsAtIndexPaths(tempIndexPath, withRowAnimation: .Left)
                self.showScore = true
            }
            
            self.tableView?.endUpdates()
        }
    

    并在Row为2时,显示该栏:

    if self.showScore && indexPath.row == 2 {
                cell.contentView.addSubview(self.Score!)
            }
    

    为了增加一个评分栏后,点击其他cell依旧正确:

     var row = indexPath.row
     if self.showScore && row>=1 {
                row -= 1
            }
    

    相关文章

      网友评论

          本文标题:iOS实战【好书】之评分栏

          本文链接:https://www.haomeiwen.com/subject/tfotjttx.html