0

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 を呼び出す方法がわかりません。

影を隠す方法やスーパーを呼び出す方法について何か提案はありますか?

4

1 に答える 1

0

Theos では%orig;、元の引数を持つ super と同等です。

%orig(arg1, arg2, etc);カスタム引数をスーパーに渡すこともできます。

于 2012-07-01T17:45:16.937 に答える