2013-06-06 4 views
1

저는 객관적인 C와 Cocoa에 익숙하지 않지만 일부보기에 슬라이더를 추가 할 수있었습니다.프로그래밍 방식으로 볼 NSSlider를 여러 개 추가하십시오.

코드와 함께 여러 슬라이더를 추가하고 for 루프 및 배열을 사용하여 시도했습니다. 그것은 일을 일부러하지만, 여기에 코드입니다 I 시도 :. 그 심지어 배열 '을 통해 "일 경우

NSMutableArray* myarray; 
for (int i = 0; i<5; i = i+30) { 
    [myarray addObject:[[NSSlider alloc] initWithFrame:NSMakeRect(15+i, 15, 30, 200)]]; 

} 



for (int i=0; i<5; i++) { 
    [firstView addSubview:[myarray objectAtIndex:i]]; 
    NSLog(@"%d",i); 
} 

은 (떨어져 그들에게 30을 보여주고 싶었다, 그러나 didnt 한 일 그럼 난이 시도 문제가 나던

.

[myarray addObject:[[NSSlider alloc] initWithFrame:NSMakeRect(15, 15, 30, 200)]]; 
[firstView addSubview:[myarray objectAtIndex:0]]; 
나는 않아요 중 하나가 작동 하나 개의 슬라이더를 보여 주려고

하지만이 작동합니다.

[firstView addSubview:[[NSSlider alloc] initWithFrame:NSMakeRect(45, 15, 30, 200)]]; 

을 왜? 그리고 여러 슬라이더/버튼/뷰를 동적으로 추가하는 데 중요한 것은 무엇이든지 추가하는 올바른 방법은 무엇입니까? 진짜 아이디어는 CoreData에서 데이터를 가져 오는 것이며 CoreData의 각 항목에 대해 슬라이더를 표시해야합니다. (하지만 멀리 떨어져있어)

팁과 트릭이 필요합니다! 미리 감사드립니다. 내가 배열이 방법으로 초기화하기 위해서 시도 할 때

은 BTW : (이 뷰가 검은 색 firstView 특히 때문에)

NSMutableArray* myarray = [[NSMutableArray alloc] init]; 

의 의견이 부하를 해달라고을

답변

2

첫 번째 for 문은 완전히 잘못된 것입니다 :

for (int i = 0; i<5; i = i+30) 

루프에 한 번만 입력됩니다. 그게 아마 당신이 원하는 모든 슬라이더를 얻지 못하는 이유 일 것입니다.

+0

하하, 감사합니다. 나는 다소 눈이 멀었다 고 생각한다. ++에서 +30으로 변경 한 후에도 그것에 대해 생각조차하지 않았다. – bennibeef

+0

@bennibeef : 다시 변경하고 곱셈 - 덧셈을 사용하는 것이 좋다. rect.origin.x = fma (sliderWidth + sliderGap, i, sliderGap) * i) + sliderGap')와 동일하지만 잠재적으로 더 정확합니다. –

관련 문제