我正在尝试使用MDCChipField,这是Swift的材质设计组件。 我正在实现“输入芯片”类型,并能够使用
将输入的文本添加为芯片let mdcSearchField = MDCSearchField()
mdcSearchField.addChip(chipView)
当芯片在MDCChipField中溢出时,它们将添加到下一行。 如何将可滚动方向设置为水平而不是垂直?
在链接中, https://material.io/design/components/chips.html#input-chips, 放置部分说明
输入芯片可以与其他组件集成。它们可以出现:
- Inline with the text input cursor in a field - In a stacked list - In a horizontally scrollable list
如何在代码中创建水平可滚动列表?
谢谢。
答案 0 :(得分:1)
我的方法是这样的:
去除芯片(如果需要)
这是Swift中的示例 配置初始布局
class ChipSample
{
var tagXOffset = 10
var tagPadding = 10
func configureTagsView()
{
tagView = UIScrollView(frame: CGRect(x: 0, y: 120, width: view.bounds.width, height: 40))
view.addSubview(tagView)
}
添加芯片
func addChip(name:String)
{
let chip = MDCChipView()
chip.titleLabel.text = name
chip.setTitleColor(.gray, for: .normal)
chip.sizeToFit()
chip.addTarget(self, action: #selector(removeChip), for: .touchUpInside)
tagView.addSubview(chip)
chip.frame.origin.x = tagXOffset
chip.frame.origin.y = 0
tagXOffset += tagPadding + chip.frame.width
tagView.contentSize = CGSize(width: tagXOffset, height: tagViewHeight)
}
取出芯片
@objc func removeChip(sender: MDCChipView!)
{
tagXOffset = tagPadding
sender.removeFromSuperview()
for subview in tagView.subviews {
subview.frame.origin.x = tagXOffset
tagXOffset += tagPadding + subview.frame.width
}
}