Подвид UIView не отображается в UIScrollView - PullRequest
4 голосов
/ 19 июня 2011

Я новичок в разработке для iOS, я пытаюсь сделать заголовок прокрутки, как приложение Engadget для iPhone, я создал пользовательский UIView, который будет выступать в качестве подпредставления для UIScrollView, алгоритм размещения подпредставлений, кажется, в порядкеКак я могу прокрутить подпредставления, программно я меняю цвет фона видов, но проблема в том, что я ничего не вижу в контенте, только на сером фоне, что я делаю не так?

Заранее спасибо.

Это мой код:

Повышен статус UIView с двумя метками и UIImageView.

- (void)layoutScrollSubViews
{
promoted *view = nil;
NSArray *subviews = [sView1 subviews];

// reposition all image subviews in a horizontal serial fashion
CGFloat curXLoc = 0;
for (view in subviews)
{
    if ([view isKindOfClass:[promoted class]]  && view.tag > 0)
    {
        CGRect frame = view.frame;
        frame.origin = CGPointMake(curXLoc, 0);
        frame.size.height = kScrollObjHeight;
        frame.size.width = kScrollObjWidth;
        view.frame = frame;

        curXLoc += (kScrollObjWidth);
    }
}

// set the content size so it can be scrollable
[sView1 setContentSize:CGSizeMake((kNumImages * kScrollObjWidth), [sView1 bounds].size.height)];

}

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad{    
NSUInteger i;
for (i = 1; i <= kNumImages; i++)
{

    promoted *p = [[promoted alloc] initWithFrame:CGRectMake(0, 0, 320, 187)];

    p.title.text = @"Test 1";
    p.num.text = @"1/1";
    p.num.backgroundColor = [UIColor whiteColor];
    // setup each frame to a default height and width, it will be properly placed when we call "updateScrollList"
    p.backgroundColor = [UIColor colorWithRed:(.9/i) green:(.9/i) blue:(.9/i) alpha:1];

    p.tag = i;  // tag our images for later use when we place them in serial fashion

    [sView1 addSubview:p];
    [p release];
}

[self layoutScrollSubViews];
[super viewDidLoad];
}

Ответы [ 2 ]

0 голосов
/ 28 января 2014

По моему опыту, UIScrollView - это странный глючный элемент управления, выпущенный Apple.Не знаю, почему он ведет себя ненормально при добавлении через файл пера.Я всегда стараюсь создавать UIScrollView программно и добавлять к нему подпредставления, выделяя их также программно.

Может быть, это звучит странно, но в большинстве случаев это работает для меня!

0 голосов
/ 20 июня 2011

Вы можете сделать две вещи: 1. Добавить вид изображения и метки непосредственно в scrollView 2. также назначить метку и ImageView перед добавлением их в UIView (и не забудьте отпустить их, когда требованиеотделка, в соответствующем объеме)

...