SBBulletinBlurredShadowLabel (プライベート フレームワーク)のぼやけた影を、theos でフックして非表示にしたいと考えています。
SBBulletinBlurredShadowLabel.h:
#import "UILabel.h"
@interface SBBulletinBlurredShadowLabel : UILabel
{
}
- (struct CGSize)sizeThatFits:(struct CGSize)arg1;
- (void)drawTextInRect:(struct CGRect)arg1;
@end
そしてここでそれが使われています
SBBulletinHeaderView.h:
#import "SBBulletinLinenSegmentView.h"
@class NSString, SBBulletinBlurredShadowLabel, SBBulletinClearButton, UIView;
@interface SBBulletinHeaderView : SBBulletinLinenSegmentView
{
UIView *_translucentOverlay;
UIView *_iconView;
SBBulletinBlurredShadowLabel *_sectionLabel;
SBBulletinClearButton *_clearButton;
id <SBBulletinHeaderViewDelegate> _delegate;
NSString *_sectionID;
}
+ (float)headerHeight;
- (id)initWithFrame:(struct CGRect)arg1 linenView:(id)arg2;
@property(retain, nonatomic) NSString *sectionID; // @synthesize sectionID=_sectionID;
- (void)dealloc;
- (void)setShowsClearButton:(BOOL)arg1 animated:(BOOL)arg2;
- (void)layoutSubviews;
- (void)willMoveToWindow:(id)arg1;
- (id)_sectionNameForSectionID:(id)arg1;
- (id)_newIconViewForSectionID:(id)arg1;
@property(readonly, nonatomic) SBBulletinClearButton *clearButton; // @synthesize clearButton=_clearButton;
@property(nonatomic) id <SBBulletinHeaderViewDelegate> delegate; // @synthesize delegate=_delegate;
@end
機能しないもの:
%hook SBBulletinBlurredShadowLabel
- (void)drawTextInRect:(struct CGRect)arg1 {
//skips it. The label disappears
}
%end
%hook SBBulletinHeaderView
- (void)layoutSubviews {
// does not work since SBBulletinBlurredShadowLabel doesn't use the standard UILabel shadow
self._sectionLabel.shadowColor = [UIColor clearColor];
}
%end
私の考え:
%hook SBBulletinBlurredShadowLabel
- (void)drawTextInRect:(struct CGRect)arg1 {
[super drawTextInRect:arg1];
}
%end
しかし、theos を使用してフックするときに super を呼び出す方法がわかりません。
影を隠す方法やスーパーを呼び出す方法について何か提案はありますか?