Центрировать UIImageView в UIScrollView без contentInset?

Для взятия примера от мира Java, где нормально игнорировать исключение:

String foo="foobar";
byte[] foobytes;

try
{
    foobytes=foo.getBytes("UTF-8");
}
catch (UnsupportedEncodingException uee)
{
    // This is guaranteed by the Java Language Specification not to occur, 
    // since every Java implementation is required to support UTF-8.
}

Однако даже в таких ситуациях, я буду часто вместо этого использовать

...
catch (UnsupportedEncodingException uee)
{
    // This is guaranteed by the Java Language Specification not to occur, 
    // since every Java implementation is required to support UTF-8.
    uee.printStackTrace();
}

, Если виртуальная машина будет быть mad/spec-breaking, существует мало, я могу делать с этим, но с отслеживанием стека, я, по крайней мере, добираюсь для замечания, когда это запустило свой спуск в безумие...

5
задан Community 23 May 2017 в 12:19
поделиться

5 ответов

Создать отдельный uiview и добавьте UIImageView с центром в этом, затем добавьте представление в scrollview

UIView *view = [[UIVIew alloc] initWithFrame:<frame that will fill your scrollview>];
CGRect frame = CGRectMake((view.size.width - IMAGE_WIDTH)/2, (view.size.height - IMAGE_HEIGHT)/2, IMAGE_WIDTH, IMAGE_HEIGHT);
UIImageView *imageView = [[UIImageView alloc] initWithFrame:frame];
imageView.image = [UIImage imageNamed:@"imageSized_IMAGE_WIDTH_by_IMAGE_HEIGHT.png"];
[view addSubview:imageView];
[imageView release];

[scrollView addSubview:view];
[view release];

Обратите внимание, что вам нужно будет установить рамку просмотра, чтобы она соответствовала размерам и местоположению, которые вам нужны в scrollview. Важная часть, на которую следует обратить внимание, - это центрирование изображения внутри рамки вида с использованием размеров рамки вида в качестве переменных.

1
ответ дан 13 December 2019 в 05:38
поделиться

Вы можете указать UIScrollView на прокрутку к определенному виду, вызвав scrollRectToVisible:animated:

Пример:

[myScrollView scrollRectToVisible:imageView.frame animated:YES];

Чтобы отцентрировать его по вертикали, попробуйте следующее:

1) Добавьте пустой вид к вашему прокручиваемому виду, который имеет ту же высоту, что и контентРазмер.

2) Добавьте ваш UIImageView в центр пустого просмотра

2) scrollRectToVisible на этом пустом просмотре.

.
4
ответ дан 13 December 2019 в 05:38
поделиться

ContentInset не должен изменять содержимое, он должен изменить ContendOffset.

Попробуйте установить содержимое, затем ContentInset. Также посмотрите на цвет фонового цвета UISCROLLVIEW и что может проявиться за ним. У меня нет проблем с центрированием UiimageView в UIScrollView, используя SetContentsize, SetContentInsIns и AddSubView.

0
ответ дан 13 December 2019 в 05:38
поделиться

, это может помочь

myImageView.autoresizingMask = UIViewAutoresizingFlexibleWidth;

http://developer.apple.com/iPhone/library/documentation/UIKit/Reference/UIView_Class/UIView/UIView. html # // apple_ref / occ / instp / UIView / autoresizingMask

в основном то, что вы можете делать с autoresizingMask, - это то, что вы можете управлять «якорями» этого представления в его родительском представлении, как если бы вы использовали Interface Builder

0
ответ дан 13 December 2019 в 05:38
поделиться

Apple выпустила видеоролики о сессиях WWDC 2010 года для всех участников программы для разработчиков iphone. Одна из обсуждаемых тем - как они создали приложение для фотографий !!! Они шаг за шагом создают очень похожее приложение и сделали весь код доступным бесплатно.

Он также не использует частный API. Я не могу поместить сюда какой-либо код из-за соглашения о неразглашении, но вот ссылка на загрузку образца кода. Вам, вероятно, потребуется войти в систему, чтобы получить доступ.

http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?code=y&source=x&bundleID=20645

И вот ссылка на страницу iTunes WWDC:

http://insideapple.apple.com/redir/cbx-cgi.do?v=2&la=en&lc=&a=kGSol9sgPHP%2BtlWtLp%2BEP%2FnxnZarjWJglPBZRHd3oDbACudP51JNGS8KlsFgxZto9X%2BTsnqSbeUSWX0doe%2Fzv%2FN5XV55%2FomsyfRgFBysOnIVggO%2Fn2p%2BiweDK%2F% 2FmsIXj

1
ответ дан 13 December 2019 в 05:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: