Ne kadar klavye varsa bir UİTextField yukarı taşımak için
İPhone ile SDK:
Bir klavye getiren UITextFields
UIView
bir ben var. Bunu yapabilmek için ihtiyacım var:
UIScrollView
içeriğini kaydırma diğer metin alanları görmek için izin klavye getirdi"" (Yukarı kaydırma) veya kısalması . jump otomatik olarak
UIScrollView
ihtiyacım olduğunu biliyorum. UIView
UIScrollView
benim sınıf değiştirmeyi denedim ama hala metin kutularının veya aşağı yukarı kaydırmak için açamıyorum.
Bir UİView ve UIScrollView
Bir iki ihtiyacım var mı? Bir diğeri içeri girer mi? [EDİT: ben şimdi bilmek istiyorum UIView
içinde UIScrollView
ve püf programlama yoluyla ayarlamak için içerik boyutu UIScrollView
çerçeve boyutu UIView
.]
Otomatik olarak etkin bir metin alanına kaydırma için uygulanması gereken ne var?
İdeal olarak, mümkün olduğu bileşenleri kurulumu kadar Interface Builder içinde yapılacaktır. Sadece ihtiyacı için kod yazmak istiyorum.
Not: normal olarak işlemesi için gerekli bir tabbar (UITabBar
), tarafından hazırlanmıştır çalışıyorum UIView
(UIScrollView
).
Edit: klavye geldiğinde. sadece kaydırma çubuğunu ekliyorum Gerekli olmasa da, kullanıcı ve metin kutularının, örneğin kaydırma değiştirmek için daha iyi bir arayüz sağlar gibi hissediyorum.
Klavye yukarı ve aşağı hareket eder UIScrollView
çerçeve boyutunu değiştirmek nerede çalışma var. Sadece kullanıyorum:
-(void)textFieldDidBeginEditing:(UITextField *)textField {
//Keyboard becomes visible
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height - 215 50); //resize
}
-(void)textFieldDidEndEditing:(UITextField *)textField {
//keyboard will hide
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height 215 - 50); //resize
}
Ancak bu otomatik olarak "yukarı" ya da merkezi çok istediğim şey olan görünür bölgede alt metin alanları. hareket etmiyor
CEVAP
Eğer şimdi içeriği iPhone ekranında uygun mu yoksa gidin bir görünüm gerekir. Eğer sadece belirsiz klavye geldiğinde Yukarı kaydırma yapmak için kaydırma düğmesini kullanın. (eğer olursa, o zaman gerekli değil.)
Klavye ile gizli olmadan TextField öğeleri göstermek için, standart bir şekilde aşağı görünümü klavye gösterildiğinde TextField öğeleri olan/yukarı taşımak için.
Burada bazı örnek kod:
#define kOFFSET_FOR_KEYBOARD 80.0
-(void)keyboardWillShow {
// Animate the current view out of the way
if (self.view.frame.origin.y >= 0)
{
[self setViewMovedUp:YES];
}
else if (self.view.frame.origin.y < 0)
{
[self setViewMovedUp:NO];
}
}
-(void)keyboardWillHide {
if (self.view.frame.origin.y >= 0)
{
[self setViewMovedUp:YES];
}
else if (self.view.frame.origin.y < 0)
{
[self setViewMovedUp:NO];
}
}
-(void)textFieldDidBeginEditing:(UITextField *)sender
{
if ([sender isEqual:mailTf])
{
//move the main view, so that the keyboard does not hide it.
if (self.view.frame.origin.y >= 0)
{
[self setViewMovedUp:YES];
}
}
}
//method to move the view up/down whenever the keyboard is shown/dismissed
-(void)setViewMovedUp:(BOOL)movedUp
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3]; // if you want to slide up the view
CGRect rect = self.view.frame;
if (movedUp)
{
// 1. move the view's origin up so that the text field that will be hidden come above the keyboard
// 2. increase the size of the view so that the area behind the keyboard is covered up.
rect.origin.y -= kOFFSET_FOR_KEYBOARD;
rect.size.height = kOFFSET_FOR_KEYBOARD;
}
else
{
// revert back to the normal state.
rect.origin.y = kOFFSET_FOR_KEYBOARD;
rect.size.height -= kOFFSET_FOR_KEYBOARD;
}
self.view.frame = rect;
[UIView commitAnimations];
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
// register for keyboard notifications
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow)
name:UIKeyboardWillShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillHide)
name:UIKeyboardWillHideNotification
object:nil];
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
// unregister for keyboard notifications while not visible.
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillHideNotification
object:nil];
}
Nasıl OS X Terminal ile bir dizini yuk...
Nasıl bir anahtar UİTextField dönüş ba...
Ne kadar Hizmet varsa söyle Visual Stu...
Ne kadar dosya varsa kontrol etmek içi...
Al seçili UİTextField gidin ve Klavye ...