2013-03-31 39 views
1

我试图在我的方法被激活时显示图像。我有所有的代码,我没有得到任何错误,但图像不会显示。 这是我的Tweak.xm文件。如何通过NSBundle显示图像

#import <UIKit/UIKit.h> 
#import <substrate.h> 
#import <Foundation/Foundation.h> 
#import <UIKit/UISaveToCameraRollActivity.h> 
#import <UIKit/_UIImageViewExtendedStorage.h> 
#import <UIKit/_UIOnePartImageView.h> 
#import <UIKit/_UIPrefTableCellPiece.h> 
#import <UIKit/_UIStretchableImage.h> 
#import <UIKit/_UISwitchSlider.h> 
#import <UIKit/_UITableViewCellDeleteConfirmationControl.h> 
#import <UIKit/UIImage.h> 
#import <UIKit/_UITableViewUpdateSupport.h> 
#import <UIKit/UI9PartImageView.h> 
#import <UIKit/UIAlertSheetTextField.h> 
#import <UIKit/UIAutocorrectImageView.h> 
#import <UIKit/UIClippedImageView.h> 
#import <UIKit/UICompositeImageView.h> 
#import <UIKit/UIImageAndTextTableCell.h> 
#import <UIKit/UIImageView2.h> 
#import <UIKit/UIOnePartImageView.h> 
#import <UIKit/UITabBarSwappableImageView.h> 
#import <UIKit/UITableViewCell2.h> 
#import <UIKit/UITableViewCellEditControl.h> 
#import <UIKit/UIThreePartImageView.h> 
#define kBundlePath @"/Library/MobileSubstrate/DynamicLibraries/image.bundle" 

%hook UISaveToCameraRollActivity 
-(void)performActivity { 
%orig; 
NSBundle *bundle = [[NSBundle alloc] initWithPath:kBundlePath]; 
NSString *imagePath = [bundle pathForResource:@"pic" ofType:@"png"]; 
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake (100, 200, 100, 100)]; 
imageView.image = [UIImage imageWithContentsOfFile:imagePath]; 

} 
%end 

,这里是我的生成文件

include theos/makefiles/common.mk 

TWEAK_NAME = test 
test_FILES = Tweak.xm 
test_FRAMEWORKS = UIKit 
include $(THEOS_MAKE_PATH)/tweak.mk 
BUNDLE_NAME = image 
image_INSTALL_PATH = /Library/MobileSubstrate/DynamicLibraries 
image_FRAMEWORKS = UIKit 
include $(THEOS_MAKE_PATH)/bundle.mk 

谢谢你们我真的很感谢所有帮助,我知道我有很多头,但这个项目在一个点上是有很多不同的东西。请让我知道发生了什么,因为我说我甚至没有得到任何错误代码。谢谢!

回答

1

实际上你并没有将图像视图添加到超级视图中:它从不会将其渲染到渲染层次结构中,因此从不显示在屏幕上。我的建议是找到一个特定的视图控制器并将视图放入其视图中,或者创建自己的顶层UIWindow并在其中显示图像。

+0

好的,谢谢你的回复,但你确定这是一个视图控制器问题,因为我注意到他们确实说“注意:没有文件链接 - 创建一个只包含资源的包”我怎么去尝试找到一个视图控制器来放入我的代码。谢谢。 –

+0

我建议你找到一个视图控制器,并把你的视图放入它的视图层次结构中,这与你有一个不包含代码的bundle无关(这对于bundle来说是完全和完全正确的)。(另外,我从来没有说过它是一个视图控制器*问题* ...你只是没有在任何地方展示你的视图......)你已经明确地得到了一些应用程序,所以你可以开始阶级倾销它,并找出什么视图控制器,它实际上*有*,以便您可以找出哪一个使用。 –

+0

好的,谢谢你,这对我有很大的帮助 –