animation - animate text alignment for UILabel in swift -
so question more of challenge in end. maybe im going wrong direction though maybe ask ideas.
the context:
i have set of string (place names) , want suggest answers based on user inputs in uitextview.
the method:
i used combination of 2 uilabels , 1 uitextview achieve working results: suggestionlabel in background, searchlabel in middle, , searchinput text view on foreground. textview enables interaction text's alpha set 0 (i didn't want consume time padding , insets relative various screen size , autolayout constraints have). when typing, changes reflected on searchlabel, , suggestion based on inputs on suggestionlabel.
the goal:
it's visual goal. when user select place based on suggestion, place's profile fades in , title set @ exact same place search text. (all of serve looking transition).
the challenge:
the search input, label , place's profile title have centered (im speaking text alignment here). make work different layer of text, used set of auto layout constraints blocks centered in views, dynamic width, , original text alignment set .left
having alignment set .center breaks text layers perfect overlap. so, though keeping way , make transition .left alignement .center when users validate choices.
my problem textalignment doesn't seems can smoothly animate. wondering if there trick of sort use :)
thanks idea come with.
im not sure it's relevant here code wrote:
func textviewdidchange(textview: uitextview) { //handle text changes here displaysearch.text = textview.text displaysearch.textalignment = nstextalignment.left displaysearch.font = uifont(name: searchview.font.fontname, size: 23) if suggestview.text!.rangeofstring(searchview.text) != nil{ println("exists") } else{ suggestview.text = "" } //user input let scope = self.searchview.text //scanning suggestion dict for(var = 0; < dict.count; i++){ let stringon = dict[i]["place"] as! string println(stringon) if let range = stringon.rangeofstring(scope.lowercasestring) { if range.startindex == stringon.startindex { suggestview.text = stringon.capitalizedstring searchview.text = searchview.text.capitalizedstring suggestview.textalignment = nstextalignment.left suggestview.font = uifont(name: searchview.font.fontname, size: 23) suggestview.textcolor = uicolor.graycolor() } } } } func textview(textview: uitextview, shouldchangetextinrange range: nsrange, replacementtext text: string) -> bool { if(text == "\n") { textview.resignfirstresponder() //animate text alignment return false } return true }
Comments
Post a Comment