나는 UIButton의 그리드가 있습니다. '편집'버튼을 누르면 삭제 버튼이 각 버튼 위에 나타나게됩니다.이 버튼을 누르면 버튼 (및 관련 데이터)이 삭제됩니다. 사과의 홈 화면과 비슷합니다. 버튼을 누르고 있으면 구석에있는 X로 흔들 리기 시작합니다.삭제 기능을 사용하여 사용자 지정 UIButton 클래스 만들기
이 게시물에 따르면 : Subclass UIButton to add a property 연관성있는 참조를 사용하여 각 버튼에 속성을 추가 할 수 있습니다. 내 사용자 지정 UIButton의 속성으로 UIButton을 추가하려고 시도했지만 표시 할 수없고 이것이 올바른 방법이 아니라고 느낄 수는 없습니다. 내가 프로그래밍 버튼을 추가 할 경우 여기에
#import "UIButton+Property.h"
#import <objc/runtime.h>
@implementation UIButton(Property)
static char UIB_DELETEBUTTON_KEY;
@dynamic deleteButton;
- (void)setDeleteButton:(UIButton *)deleteButton {
deleteButton = [UIButton buttonWithType:UIButtonTypeInfoDark];
deleteButton.frame = CGRectMake(100, 100, 50, 50);
objc_setAssociatedObject(self, &UIB_DELETEBUTTON_KEY, deleteButton, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
- (UIButton *)deleteButton {
return (UIButton *)objc_getAssociatedObject(self, &UIB_DELETEBUTTON_KEY);
}
@end
을 그리고 :
//Create a custom button for each custom book doc
for (int i = 0; i < [customBookDocs count]; ++i) {
BookDoc *customBookDoc = [customBookDocs objectAtIndex:i];
NSString *bookTitle = customBookDoc.book.title;
//create a button for each book
CGRect frame = CGRectMake(xCoord, yCoord, 200, 200);
UIButton *bookButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
bookButton.bookDoc = customBookDoc;
[bookButton setFrame:frame];
[bookButton setTitle:bookTitle forState:UIControlStateNormal];
[bookButton addTarget:self action:@selector(bookButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
xCoord += 250;
[self.view addSubview:bookButton];
[self.view addSubview:bookButton.deleteButton];
}
이 작업을 수행하려면 쉽게 분별있는 방법이 여기 내 사용자 지정 버튼이 메인인가? 아니면 올바른 방향으로 가고 있습니까?
... 다른 사람이 그것에 대해 말할 더있을 수 있습니다,하지만 난 당신이 여기에 개체 연결을 사용할 필요가 줄 이유는 확실하지 않다 :
삭제 버튼을 실제로 설정하지 않았습니다. 또한 연관 메서드는 어쨌든 설정 한 삭제 단추를 무시합니다. – Joe