I was mistaking the frame of my button and view. Here a working code if it can help anyone.
__block CGFloat scrollViewContentSize = 0;
__block CGFloat buttonRectOrigineY = 0;
[self.itemsToDisplay enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
CGRect frameTestButton = CGRectMake(0, 0, 300, 150);
CGRect frameTestView = CGRectMake(10, buttonRectOrigineY, 300, 200);
UIButton *testButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
testButton.frame = frameTestButton;
testButton.backgroundColor = [UIColor greenColor];
UIView *testView = [[UIView alloc] initWithFrame:frameTestView];
if(idx == 0)
testView.backgroundColor = [UIColor yellowColor];
if(idx == 1)
testView.backgroundColor = [UIColor orangeColor];
if(idx == 2)
testView.backgroundColor = [UIColor redColor];
if(idx == 3)
testView.backgroundColor = [UIColor magentaColor];
if(idx == 4)
testView.backgroundColor = [UIColor purpleColor];
if(idx <= 4){
LogDebug(@"idx : %lu", (unsigned long)idx);
[testView addSubview:testButton];
[self.articleScrollView addSubview:testView];
[self.articleScrollView bringSubviewToFront:testView];
buttonRectOrigineY += 200;
scrollViewContentSize += 200;
}
}];
[self.articleScrollView setContentSize:CGSizeMake(320, scrollViewContentSize)];