需求说明
返回:左下角返回
收藏:收藏文章进入收藏-经验模块;需要登录
有用:点击后有用数+1,无需登录即可点;
转发:弹出转发弹层
置顶:回到顶部,如果已经是置顶状态则置灰
需求地址
http://192.168.1.75/114la/220/114la_220/#g=1&p=3_2_%E6%99%AE%E9%80%9A%E5%B8%96
接口说明
星标文章
URL:http://114larc.com/z/api/1.0/android/2.0/markFav
请求方式:POST
- 请求参数说明
参数名称 | 必选 | 类型 | 描述 |
---|---|---|---|
tid | true | int | ID |
type | true | int | 类型1为经验 2为说明书 3为工具 4为微店 |
op | true | string | 操作add 星标 del 取消星标 |
cat_id | false | int | 说明书章节ID |
- 返回参数说明
参数名称 | 类型 | 描述 |
---|---|---|
success | int | 1为成功,其他为失败 |
- 返回结果
{
"state": 1,
"code": 0,
"message": "",
"data": {
"success": 1
}
}
有用文章
URL:http://114larc.com/z/api/1.0/android/2.0/markUseful
请求方式:POST
- 请求参数说明
参数名称 | 必选 | 类型 | 描述 |
---|---|---|---|
tid | true | int | ID |
type | true | int | 类型1为经验 2为说明书 3为工具 |
op | true | string | 操作add有用 del取消 |
cat_id | false | int | 说明书章节ID |
- 返回参数说明
参数名称 | 类型 | 描述 |
---|---|---|
success | int | 1为成功,其他为失败 |
- 返回结果
{
"state": 1,
"code": 0,
"message": "",
"data": {
"success": 1
}
}
核心代码
该工具是由nib实现,布局直接看nib添加的约束。
根据详情页获取的文章信息进行初始化。
func setupStarToolBar(_ pageInfo: [String:Any]) {
starBtn.isEnabled = true
zanBtn.isEnabled = true
shareBtn.isEnabled = true
scrollTopBtn.isEnabled = true
tid = pageInfo["id"] as? Int ?? -1
type = pageInfo["type"] as? Int ?? 3
starBtn.isSelected = pageInfo["is_fav"] as? Bool ?? false
zanBtn.isSelected = pageInfo["is_useful"] as? Bool ?? false
usefulNum = pageInfo["useful_num"] as? Int ?? 0
catId = pageInfo["cat_id"] as? Int
usefulNumLabel.text = String.toRelativeNumberString(intNum: usefulNum)
if usefulNum <= 0 {
zanBtn.setImage(UIImage(named: "tool_bar_zan_normal"), for: UIControlState())
} else {
zanBtn.setImage(UIImage(named: "tool_bar_zan_num"), for: UIControlState())
}
// usefulNumLabel.backgroundColor = UIColor.white
if let dict = (pageInfo["pics"] as? [Any])?.first as? [String:Any] {
shareImageUrl = dict["src"] as? String ?? ""
}
}
显示或者隐藏:星标、点赞等按钮。给外部调用。
func showStarBtns() {
starBtn.isHidden = false
zanBtn.isHidden = false
shareBtn.isHidden = false
scrollTopBtn.isHidden = false
usefulNumLabel.isHidden = false
}
func hideStarBtns() {
starBtn.isHidden = true
zanBtn.isHidden = true
shareBtn.isHidden = true
scrollTopBtn.isHidden = true
usefulNumLabel.isHidden = true
}
直接在该类中进行请求接口,未使用代理到详情页请求。
相关逻辑都在该类中。