Я создал приложение iPhone со страницей, чтобы показать содержимое .txt-файла в UIScrollView. По какой-то причине мой простой текстовый файл заставляет Scrollview позволять ему слегка поворачивать влево и вправо, я хочу, чтобы он был сплошным прокруткой вниз.Как предотвратить левое правое панорамирование в UIScrollView
действительно нужна помощь с этим ..
Благодаря
#import "ITFAQController.h"
#import "FTCoreTextView.h"
@implementation ITFAQController
- (NSString *)textForView {
NSString *path = [[NSBundle mainBundle] pathForResource:@"faq" ofType:@"txt"];
NSError *error;
return [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
}
/*- (id)init
{
self = [super init];
if (self) {
// Custom initialization
[self showLogoInNavBar:YES];
}
return self;
}
*/
#pragma mark - View lifecycle
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
[super viewDidLoad];
[self showLogoInNavBar:YES];
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 330, (self.view.bounds.size.height - 90))];
[self.view addSubview:scrollView];
FTCoreTextView *ctView = [[FTCoreTextView alloc] initWithFrame:CGRectMake(10, 0, 300, scrollView.bounds.size.height)];
[ctView setText:[self textForView]];
FTCoreTextStyle *defaultStyle = [FTCoreTextStyle styleWithName:FTCoreTextTagDefault];
[defaultStyle setFont:kITDescriptionFont];
[defaultStyle setTextAlignment:FTCoreTextAlignementJustified];
[defaultStyle setParagraphInset:UIEdgeInsetsMake(5, 10, 0, 0)];
[ctView addStyle:defaultStyle];
FTCoreTextStyle *title = [FTCoreTextStyle styleWithName:@"title"];
[title setFont:kITTitleFont];
[title setColor:kITCellFontColor];
[title setParagraphInset:UIEdgeInsetsMake(10, 0, 5, 0)];
[ctView addStyle:title];
FTCoreTextStyle *bold = [FTCoreTextStyle styleWithName:@"bold"];
[bold setFont:[UIFont boldSystemFontOfSize:14]];
[ctView addStyle:bold];
FTCoreTextStyle *link = [FTCoreTextStyle styleWithName:FTCoreTextTagLink];
[link setColor:[UIColor blueColor]];
[ctView addStyle:link];
FTCoreTextStyle *bullets = [FTCoreTextStyle styleWithName:FTCoreTextTagBullet];
[bullets setBulletColor:kITCellFontColor];
[bullets setFont:kITItalicFont];
[bullets setParagraphInset:UIEdgeInsetsMake(0, 10, 0, 0)];
[ctView addStyle:bullets];
[ctView fitToSuggestedHeight];
[scrollView addSubview:ctView];
[scrollView setContentSize:[ctView suggestedSizeConstrainedToSize:CGSizeMake(scrollView.bounds.size.width, CGFLOAT_MAX)]];
//[ctView fitToSuggestedHeight];
//[ctView sizeToFit];
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
@end
Хотя не имеет прямое отношение к этой проблеме (Том имеет правильный ответ ниже), это также стоит знать о двух свойстве 'UIScrollView':' alwaysBounceHorizontal' и 'alwaysBounceVertical'. Если для параметра 'bounces' установлено значение' YES', это означает, что просмотр прокрутки все еще отскакивает, если 'contentSize' меньше, чем' frame'. Они по умолчанию «НЕТ» (за исключением «UITableView», я полагаю), но если вы хотите * включить * такое поведение, это одна вещь, которую вы можете сделать. – drewmm
Ну, я частично решил проблему, предотвращая отскок и блокировку при прокрутке. Хотя нет вертикального подпрыгивания, его лучше, чем он будет использоваться. Я все еще нахожу, что могу двигаться влево и вправо на 5 или 10 пикселей. 'UIScrollView * scrollView = [[UIScrollView alloc] initWithFrame: CGRectMake (0, 0, self.view.bounds.size.width, (self.view.bounds.size.height - 90))]; scrollView.bounces = NO; scrollView.alwaysBounceHorizontal = NO; scrollView.directionalLockEnabled = YES; ' – Steve
Спасибо, drewmm за вашу помощь – Steve