#objective-c #ios #cocoa-touch
#objective-c #iOS #cocoa-touch
Вопрос:
Я настраиваю ScrollView в качестве корневого представления для одного из моих контроллеров просмотра. Когда я перетащил вид прокрутки из конструктора интерфейсов, начальный размер прокрутки составил 220×120.
В этом методе viewDidLoad viewDidLoad контроллера представления у меня есть этот код.
UIImage *iphone = [UIImage imageNamed:@"iphone4s.jpg"];
imageview = [[UIImageView alloc] initWithImage:iphone];
[self.view addSubview:imageview];
[(UIScrollView*)self.view setContentSize:[iphone size]];
размер iphone
изображения составляет 600×800.
Но вид прокрутки по-прежнему имеет размер 220×120, когда вид загружается на экран. Должен ли я сделать что-нибудь еще, чтобы растянуть ScrollView. Пожалуйста, помогите.
Ответ №1:
Попробуйте это `
UIImage *iphone = [UIImage imageNamed:@"iphone4s.jpg"];
imageview = [[UIImageView alloc] initWithImage:iphone];
[self.view addSubview:imageview];
self.view.frame = CGRectMake(0, 20, 320, 460);
[(UIScrollView*)self.view setContentSize:[iphone size]];
`
Если это сработает для вас — просто растяните его в IB.
Ответ №2:
Свойство contentSize
не совпадает с размером UIScrollView. Обычно у вас будет больший размер содержимого, чтобы иметь возможность прокручивать:
-------------------
|x------------ |
|| | |
|| | |
| ------------ |
| |
| |
-------------------
Внутренний прямоугольник в этом эскизе — это размер вида прокрутки (ваш 220×120), который вы видите на экране, а внешний прямоугольник — это фактический размер объекта (600×800 в вашем случае). Манипулируя contentOffset
точкой (x на рисунке), вы можете изменить, какая часть объекта видна.
Если вам не нужно, чтобы изображение можно было прокручивать, вам вообще не нужен UIScrollView. Попробуйте использовать UIImageView, измените его frame
и проверьте различные значения его contentMode
свойства.
Кроме того, не забывайте, что views может автоматически регулировать его размер.
Ответ №3:
Попробуйте это
[(UIScrollView*)self.view setContentSize:[imageview size]];
Комментарии:
1. для просмотра изображения нет свойства size