2013-03-31 110 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

好的,謝謝你,這對我有很大的幫助 –