런타임 중에 UIBarButtonItem 형식의 도구 모음 단추를 변경하려고하는 도로 충돌이 발생했습니다.도구 모음 단추 변경
주어진 텍스트보기에 대해 프로그래밍 방식으로 툴바를 만들었습니다. 버튼 이미지가 눌려 졌을 때 버튼 이미지를 바꾸고 싶습니다. 예를 들어 이미지에 토글이 있고 이미지가 토글되어있는 경우와 같습니다.
나는 설명 할 것이다 :
여기내가 원하는 버튼으로 도구 모음을 만들
func configureToolbar(forTextView textView: UITextView) {
toolbar?.barStyle = UIBarStyle.default
toolbar?.items = [
UIBarButtonItem.init(image: UIImage.init(named: "bold_unselected"), style: UIBarButtonItemStyle.plain, target: self, action: #selector(ViewController.didTapBold(sender:))),
UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil),
UIBarButtonItem(title: "Italic", style: UIBarButtonItemStyle.plain, target: self, action: #selector(ViewController.didTapItalic(sender:))),
UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil),
UIBarButtonItem(title: "Underline", style: UIBarButtonItemStyle.plain, target: self, action: #selector(ViewController.dismissKB))]
toolbar?.sizeToFit()
for (index,item) in (toolbar?.items?.enumerated())! {
item.tag = index
}
// Adds a view as a upper border line
let border = UIView(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width, height: 0.5))
border.backgroundColor = UIColor.lightGray
toolbar?.addSubview(border)
// Configures the toolbar
toolbar?.backgroundColor = UIColor.white
toolbar?.barTintColor = UIColor.white
toolbar?.tintColor = UIColor.black
toolbar?.clipsToBounds = true
// Adds to the super view;
textView.inputAccessoryView = toolbar
}
여기에 굵은 버튼 기능 여기
func didTapBold(sender: UIBarButtonItem) {
typeface.isBold = typeface.isBold! ? false : true // true -> false -> true
toggleButton(button: sender, status: typeface.isBold!)
}
의 내가 원하는 곳이야 '상태'버튼을 켜기 위해 켜짐 - 꺼짐
func toggleButton(button: UIBarButtonItem, status: Bool) {
// changes the button appearance
switch button.tag {
case 0:
print("bold")
print("status \(status)")
if status {
button.image = UIImage.init(named: "bold_selected")
} else {
button.image = UIImage.init(named: "bold_unselected")
}
case 2:
print("bla bla bla")
case 4:
print("bla bla bla 2")
default:
print("default value called")
}
}
는 어떤 이유로, 내가하고 싶은에 이미지를 변경할 수 없습니다,하지만 난 다른 하나를 변경할 수 있습니다.
휴먼 인터페이스 가이드 라인을 읽었으며 툴바에 권장되는 이미지 크기를 찾을 수 없지만 검색 한 후 20x20 크기의 일부 웹 사이트를 읽은 후 다른 사람이 확인할 수 있습니까?
기본 이미지와 선택한 이미지가 있습니다.
UPDATE 은 어떻게 든 내가 도구 모음에 어떤 색깔의 아이콘/이미지를 추가 할 수 없습니다 것 같다. 방금 다른 아이콘을 추가하려고했는데 방금 검은 점으로 나타났습니다.
희망이 도움 그게 문제의 원인이야, 난 그렇게 생각하지 않아. –
누구도 도와 줄 수 있습니까? :) –