#iphone #uiscrollview
#iPhone #uiscrollview
Вопрос:
Я хочу установить изображение в UIScrollView, но есть проблема. Изображение находится за пределами UIScrollView. Я использую [self.ScrollView добавляет SUBVIEW:view];
enter code here
ScrollView = [[UIScrollView alloc] initWithFrame:scrollViewRect];
-(void)scrollViewDidScroll:(UIScrollView *)sv
{
int page = [self currentPage];
// Load the visible and neighbouring pages
[self loadPage:page-1];
[self loadPage:page];
[self loadPage:page 1];
}
-(void)loadPage:(int)page
{
// Sanity checks
if (page < 0) return;
if (page >= [scrollViewPages count]) return;
// Check if the page is already loaded
UIView *view = [scrollViewPages objectAtIndex:page];
// if the view is null we request the view from our delegate
if ((NSNull *)view == [NSNull null])
{
view = [delegate viewForItemAtIndex:self index:page];
[scrollViewPages replaceObjectAtIndex:page withObject:view];
}
// add the controller's view to the scroll view if it's not already added
if (view.superview == nil)
{
// Position the view in our scrollview
CGRect viewFrame = view.frame;
viewFrame.origin.x = viewFrame.size.width * page;
viewFrame.origin.y = 0;
view.frame = viewFrame;
[self.scrollView addSubview:view];
}
}
enter code here
Я прикрепил свой проект в my project
Ответ №1:
Вы присваиваете желаемый кадр виду перед добавлением его в режим прокрутки?
Комментарии:
1. Вы можете видеть UIScrollView на моей фотографии. Оно находится за фотографией Балмера и имеет серый цвет.
2. Я скачал ваш проект. Проблема в том, что у вас высота изображения равна 280, но высота просмотра прокрутки намного меньше. Пожалуйста, сделайте в xib высоту просмотра прокрутки равной или превышающей максимальную высоту изображения, и это должно сработать. Если у вас возникнут какие-либо проблемы, я затем загружу исправленный проект. Если быть более конкретным, высота прокрутки была около 119, а высота размера содержимого — 320. Таким образом, вы видите серую область только рамки прокрутки (высота 119 пикселей), но она пытается отобразить изображение высотой 280 пикселей, которое выходит за пределы серой области.
3. Я изменил ScrollView.clipsToBounds с NO на YES. Это помогло мне.