iOS 自動增高的 textView

2021-09-08 10:09:11 字數 1127 閱讀 3350

如 iphone 內應用「資訊」的輸入框一樣,輸入文字過多或者輸入換行,輸入框可以隨著內容自動變化。主要是計算內容的尺寸並相應更改輸入框的frame。具體表現在:

更改輸入框的 frame.origin.y;

更改輸入框的高度。

兩者的變化量是相同的。

為了能達到實時性,就要監聽文字的變化,註冊 uitextviewtextdidchangenotification 的監聽,並在合適的時候解除監聽。

- (void)willmovetosuperview:(uiview *)newsuperview

- (void

)removefromsuperview

在監聽的方法中,更改 textview 的frame

- (void)textdidchanged:(nsnotification *)notif

cgfloat minus = 3

;

cgrect selfframe =self.frame;

cgfloat selfheight = self.textview.superview.frame.origin.y * 2 + contentsize.height - minus + 2 * 2

; cgfloat selforiginy = selfframe.origin.y - (selfheight -selfframe.size.height);

selfframe.origin.y =selforiginy;

selfframe.size.height =selfheight;

self.frame =selfframe;

}

在本例中,textview 是 self (uiview) 的 subview,並且設定好了 uiviewautoresizingmask,所以更改 self.frame,變相地更改 textview.frame。

DIV自動增高方法處理

在firefox中,當內容的盒子使用了float之後,並且當內容大於盒子 div 的高度的時候,盒子並不會隨內容的增大而增大,造成內容跑到了盒子 的外面。在內容的末尾加clear可解決這個問題。同時,為了使這個加了clear的盒子本身不影響布局,必須使該盒子的大小為0。這裡就又遇到了ie和 fire...

iOS中使用OpenGL 實現增高功能

demo示例 opengl原理 這樣拆分之後雖然可以正常渲染,但是帶來的問題是我的四個頂點都是死的,也就是四個頂點必須是畫布的四個頂點,改變頂點的座標後只能導致整張畫布的變動,而不是某乙個區域的變動,拉伸的話也是整張的拉伸,所以想要實現區域性處理的話這種分割方式不可行。這樣一來就可以保證中間的矩形的...

android跑馬燈效果的TextView

有時候為了布局需要在一行顯示很多文字資訊,當textview中文字超過了textview的長度時,我們需要用跑馬燈的效果來展現文字。android ellipsize marquee 跑馬燈效果顯示 android focusable true 獲得焦點 android focusableintou...