평면 스탠드가 있는 사용자 정의 UITextView 설치
3410 단어 자리 표시자UITextView
해본 일
Swift를 사용하여 평면 브래킷이 있는 UITExtView를 설치해 보았습니다.
잡다
소스 코드
PlaceHolderTextView.swiftimport UIKit
class PlaceHolderTextView: UITextView {
// プレースホルダー用のラベル
var m_labelForPlaceHolder:UILabel?
// プレースホルダーの文言
var m_strPlaceHolder:String?
// プレースホルダーのテキストの色
var m_colorForPlaceHolder:UIColor?
func initialize() {
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.TextChanged(_:)), name: UITextViewTextDidChangeNotification, object: nil)
m_labelForPlaceHolder = UILabel(frame: CGRect(x: 8, y: 8, width: self.bounds.size.width - 16, height: 0))
m_labelForPlaceHolder?.numberOfLines = 0
m_labelForPlaceHolder?.font = UIFont.systemFontOfSize(14.0)
m_labelForPlaceHolder?.lineBreakMode = NSLineBreakMode.ByCharWrapping
// デフォルト設定
self.placeHolder = "プレースホルダー"
self.PlaceHolderColor = UIColor(red: 0.8, green: 0.8, blue: 0.8, alpha: 1)
// 枠線をつける
self.layer.borderWidth = 2
self.layer.borderColor = UIColor.grayColor().CGColor
self.addSubview(m_labelForPlaceHolder!)
}
init(frame:CGRect) {
super.init(frame: frame, textContainer: nil)
initialize()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
initialize()
}
deinit {
NSNotificationCenter.defaultCenter().removeObserver(self)
}
var PlaceHolderColor:UIColor? {
get {
return m_colorForPlaceHolder
}
set {
m_colorForPlaceHolder = newValue
if nil == m_colorForPlaceHolder {
m_colorForPlaceHolder = UIColor(red: 0.8, green: 0.8, blue: 0.8, alpha: 1)
}
m_labelForPlaceHolder?.textColor = m_colorForPlaceHolder
}
}
var placeHolder:String? {
get {
return m_strPlaceHolder
}
set {
m_strPlaceHolder = newValue
if nil == m_strPlaceHolder {
m_strPlaceHolder = ""
}
// frameをリセットする
m_labelForPlaceHolder?.frame = CGRect(x: 8, y: 8, width: self.bounds.size.width - 16, height: 0)
m_labelForPlaceHolder?.text = m_strPlaceHolder
m_labelForPlaceHolder?.sizeToFit()
}
}
// テキストが変更された際に呼ばれる
func TextChanged(niti:NSNotification) {
if 0 == self.text.characters.count {
m_labelForPlaceHolder?.hidden = false
}
else {
m_labelForPlaceHolder?.hidden = true
}
}
}
사용 예 override func viewDidLoad() {
super.viewDidLoad()
let placeHolder:PlaceHolderTextView = PlaceHolderTextView.init(frame: CGRect(x: 10, y: 200, width: 300, height: 100))
placeHolder.placeHolder = "プレースホルダー付きUITextView"
placeHolder.PlaceHolderColor = UIColor.blueColor()
self.view.addSubview(placeHolder)
}
결점
텍스트를 입력하지 않았을 때, 펜대와 자리 표시자의 거리는 UITExtField와 약간 다르다.
참고 문헌
http://himaratsu.hatenablog.com/entry/objc/placeholderview
Reference
이 문제에 관하여(평면 스탠드가 있는 사용자 정의 UITextView 설치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Tsurumoto/items/f2aa74eb0d0c0e2a0a29
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
소스 코드
PlaceHolderTextView.swiftimport UIKit
class PlaceHolderTextView: UITextView {
// プレースホルダー用のラベル
var m_labelForPlaceHolder:UILabel?
// プレースホルダーの文言
var m_strPlaceHolder:String?
// プレースホルダーのテキストの色
var m_colorForPlaceHolder:UIColor?
func initialize() {
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.TextChanged(_:)), name: UITextViewTextDidChangeNotification, object: nil)
m_labelForPlaceHolder = UILabel(frame: CGRect(x: 8, y: 8, width: self.bounds.size.width - 16, height: 0))
m_labelForPlaceHolder?.numberOfLines = 0
m_labelForPlaceHolder?.font = UIFont.systemFontOfSize(14.0)
m_labelForPlaceHolder?.lineBreakMode = NSLineBreakMode.ByCharWrapping
// デフォルト設定
self.placeHolder = "プレースホルダー"
self.PlaceHolderColor = UIColor(red: 0.8, green: 0.8, blue: 0.8, alpha: 1)
// 枠線をつける
self.layer.borderWidth = 2
self.layer.borderColor = UIColor.grayColor().CGColor
self.addSubview(m_labelForPlaceHolder!)
}
init(frame:CGRect) {
super.init(frame: frame, textContainer: nil)
initialize()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
initialize()
}
deinit {
NSNotificationCenter.defaultCenter().removeObserver(self)
}
var PlaceHolderColor:UIColor? {
get {
return m_colorForPlaceHolder
}
set {
m_colorForPlaceHolder = newValue
if nil == m_colorForPlaceHolder {
m_colorForPlaceHolder = UIColor(red: 0.8, green: 0.8, blue: 0.8, alpha: 1)
}
m_labelForPlaceHolder?.textColor = m_colorForPlaceHolder
}
}
var placeHolder:String? {
get {
return m_strPlaceHolder
}
set {
m_strPlaceHolder = newValue
if nil == m_strPlaceHolder {
m_strPlaceHolder = ""
}
// frameをリセットする
m_labelForPlaceHolder?.frame = CGRect(x: 8, y: 8, width: self.bounds.size.width - 16, height: 0)
m_labelForPlaceHolder?.text = m_strPlaceHolder
m_labelForPlaceHolder?.sizeToFit()
}
}
// テキストが変更された際に呼ばれる
func TextChanged(niti:NSNotification) {
if 0 == self.text.characters.count {
m_labelForPlaceHolder?.hidden = false
}
else {
m_labelForPlaceHolder?.hidden = true
}
}
}
사용 예 override func viewDidLoad() {
super.viewDidLoad()
let placeHolder:PlaceHolderTextView = PlaceHolderTextView.init(frame: CGRect(x: 10, y: 200, width: 300, height: 100))
placeHolder.placeHolder = "プレースホルダー付きUITextView"
placeHolder.PlaceHolderColor = UIColor.blueColor()
self.view.addSubview(placeHolder)
}
결점
텍스트를 입력하지 않았을 때, 펜대와 자리 표시자의 거리는 UITExtField와 약간 다르다.
참고 문헌
http://himaratsu.hatenablog.com/entry/objc/placeholderview
Reference
이 문제에 관하여(평면 스탠드가 있는 사용자 정의 UITextView 설치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Tsurumoto/items/f2aa74eb0d0c0e2a0a29
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import UIKit
class PlaceHolderTextView: UITextView {
// プレースホルダー用のラベル
var m_labelForPlaceHolder:UILabel?
// プレースホルダーの文言
var m_strPlaceHolder:String?
// プレースホルダーのテキストの色
var m_colorForPlaceHolder:UIColor?
func initialize() {
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.TextChanged(_:)), name: UITextViewTextDidChangeNotification, object: nil)
m_labelForPlaceHolder = UILabel(frame: CGRect(x: 8, y: 8, width: self.bounds.size.width - 16, height: 0))
m_labelForPlaceHolder?.numberOfLines = 0
m_labelForPlaceHolder?.font = UIFont.systemFontOfSize(14.0)
m_labelForPlaceHolder?.lineBreakMode = NSLineBreakMode.ByCharWrapping
// デフォルト設定
self.placeHolder = "プレースホルダー"
self.PlaceHolderColor = UIColor(red: 0.8, green: 0.8, blue: 0.8, alpha: 1)
// 枠線をつける
self.layer.borderWidth = 2
self.layer.borderColor = UIColor.grayColor().CGColor
self.addSubview(m_labelForPlaceHolder!)
}
init(frame:CGRect) {
super.init(frame: frame, textContainer: nil)
initialize()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
initialize()
}
deinit {
NSNotificationCenter.defaultCenter().removeObserver(self)
}
var PlaceHolderColor:UIColor? {
get {
return m_colorForPlaceHolder
}
set {
m_colorForPlaceHolder = newValue
if nil == m_colorForPlaceHolder {
m_colorForPlaceHolder = UIColor(red: 0.8, green: 0.8, blue: 0.8, alpha: 1)
}
m_labelForPlaceHolder?.textColor = m_colorForPlaceHolder
}
}
var placeHolder:String? {
get {
return m_strPlaceHolder
}
set {
m_strPlaceHolder = newValue
if nil == m_strPlaceHolder {
m_strPlaceHolder = ""
}
// frameをリセットする
m_labelForPlaceHolder?.frame = CGRect(x: 8, y: 8, width: self.bounds.size.width - 16, height: 0)
m_labelForPlaceHolder?.text = m_strPlaceHolder
m_labelForPlaceHolder?.sizeToFit()
}
}
// テキストが変更された際に呼ばれる
func TextChanged(niti:NSNotification) {
if 0 == self.text.characters.count {
m_labelForPlaceHolder?.hidden = false
}
else {
m_labelForPlaceHolder?.hidden = true
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
let placeHolder:PlaceHolderTextView = PlaceHolderTextView.init(frame: CGRect(x: 10, y: 200, width: 300, height: 100))
placeHolder.placeHolder = "プレースホルダー付きUITextView"
placeHolder.PlaceHolderColor = UIColor.blueColor()
self.view.addSubview(placeHolder)
}
결점
텍스트를 입력하지 않았을 때, 펜대와 자리 표시자의 거리는 UITExtField와 약간 다르다.
참고 문헌
http://himaratsu.hatenablog.com/entry/objc/placeholderview
Reference
이 문제에 관하여(평면 스탠드가 있는 사용자 정의 UITextView 설치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Tsurumoto/items/f2aa74eb0d0c0e2a0a29
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
http://himaratsu.hatenablog.com/entry/objc/placeholderview
Reference
이 문제에 관하여(평면 스탠드가 있는 사용자 정의 UITextView 설치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Tsurumoto/items/f2aa74eb0d0c0e2a0a29텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)