我知道听起来这个问题有一个简单的答案,但是听我说.虽然UIStatusBar是子类UIView,但您不能使用该addSubview方法向其添加子视图,因为它不使用它.同样的道理UIStatusBarWindow.视图或窗口都没有viewcontroller,所以我无法以任何方式挂钩.
这是相关的代码部分.我在自己上调用addSubviews方法的行是问题,因为addSubviews它不是一种方法UIStatusBar.
#import <CoreGraphics/CoreGraphics.h>
@interface UIStatusBar : UIView
@end
%hook UIStatusBar
- (void)layoutSubviews {
//Round corners under status bar
CGFloat radius = 15;
CGRect wholeScreen = [[UIScreen mainScreen] bounds];
UIView *roundedCorners = [[UIView alloc] initWithFrame: CGRectMake(-radius, 20-radius, wholeScreen.size.width+2*radius, wholeScreen.size.height-20+2*radius)];
roundedCorners.layer.borderWidth = radius;
roundedCorners.layer.cornerRadius = 2*radius;
roundedCorners.layer.borderColor = UIColor.blackColor.CGColor;
roundedCorners.userInteractionEnabled = NO;
[self addSubView:roundedCorners];
}
%end
Run Code Online (Sandbox Code Playgroud)
还有其他方法可以添加子视图吗?我试图这样做的原因是,只要状态栏被隐藏,我的roundedCorners视图也会被隐藏.每当状态栏被隐藏时我都可以隐藏它,但是由于不同的应用程序使用了许多不同的隐藏状态栏的方法,这些方法并不像我希望的那样有效.
我正在使用theos开发锁屏应用程序,部分功能需要手机上某些应用程序的图标图像.如何获取这些图标图像并将其显示在手机的锁屏上?
到目前为止,我已经尝试了所有我能想到的东西,并且没有运气地搜索了跳板标题.我一直在尝试从我通过谷歌找到的建议中检索来自SBApplication和SBIconModel的图像,但我仍然没有运气.
任何帮助是极大的赞赏.谢谢!
%hook HTTPClient
- (CDUnknownBlockType)completionForSuccess:(CDUnknownBlockType)arg1 {
}
%end
Run Code Online (Sandbox Code Playgroud)
我想知道在CDUnknownBlockType这里放置什么(从类转储生成)。我不知道该块的参数,因此无法放置确切的签名。是否可以改为使用MSHookMessage通用指针作为参数?通用void *指针在这里对我不起作用,因为消息不匹配。
有没有办法获取块的签名?