odpowiedź @Puneet Sharma był wspaniały, ale to dałoby potrzebę stworzenia klasy, która podklasę UITextField
, zamiast tego stworzyłem UIView, który działałby jako dopełnienie.
mój kod działa bez konieczności podklasy
Oto mój kod, mimo że jest napisane w Swift 3
// this is the view I want to see on the rightView
let checkImageView = UIImageView(image: UIImage(named: "check24.png"))
checkImageView.frame = CGRect(x: 0, y: 0, width: 24, height: 24)
checkImageView.curveEdges(12)
checkImageView.contentMode = .scaleAspectFit
// declare how much padding I want to have
let padding: CGFloat = 6
// create the view that would act as the padding
let rightView = UIView(frame: CGRect(
x: 0, y: 0, // keep this as 0, 0
width: checkImageView.frame.width + padding, // add the padding
height: checkImageView.frame.height))
rightView.addSubview(checkImageView)
// set the rightView UIView as the textField's rightView
self.textField.rightViewMode = .whileEditing
self.textField.rightView = rightView
Co tu się stało, to że rightView
który jest UIView
, który ma przezroczyste kolorowe tło, które następnie dało złudzenie, że istnieje dopełnienie, podczas gdy nie ma.
Próbowałeś '[textField.rightView setFrame: someFrame];'? A może 'setBounds:'. – Sti
Musisz zrobić 2 widoki na to. –