2013年3月30日 星期六

iOS-changeViewSize&popupMenue

cocoacontrols發現了兩個好物,應該會在AHCI這門課所用到,先記錄一下
a. SPUserResizableView
MIT所寫出來的一隻用來改變View大小的一隻程式,沒有使用Arc,所以要在Build Phases加上-fno-objc-arc
使用的方式如下:(雖然官網有寫XD,不過還是簡單記錄一下)
#import "SPUserResizableView.h"

//初始化方式

- (void)viewDidLoad {

    //初始化一個frame
    CGRect frame = CGRectMake(50, 50, 200, 150);

    //初始化一個SPUserResizableView *的object
    SPUserResizableView *userResizableView = [[SPUserResizableView alloc] initWithFrame:frame];

    //初始化一個view -> 想要改變大小的view
    UIView *contentView = [[UIView alloc] initWithFrame:frame];
    [contentView setBackgroundColor:[UIColor redColor]];

    //把想改變大小的view加入到SPUserResizableView的contentView中
    userResizableView.contentView = contentView;
    [self.view addSubview:userResizableView];
}
這份code有宣告兩個protocol可以用,可以把自己設為delegate來傳值
//當手指按下要改變大小的view後會把userResizableView傳給delegate
//(userResizableView即想改變大小的view)
- (void)userResizableViewDidBeginEditing:(SPUserResizableView *)userResizableView;

//當手指離開要改變的小的view後會把userResizableView傳給delegate
- (void)userResizableViewDidEndEditing:(SPUserResizableView *)userResizableView;
b. QBPopupMenu
一樣式MIT所產出的code,也是沒用ARC所以要記得在Build Phases加上-fno-objc-arc
使用方式如下:
//先初始化一個QBPopupMenu的物件
QBPopupMenu *popupMenu = [[QBPopupMenu alloc] init];

//初始化item1 -> 不加圖示
QBPopupMenuItem *item = [QBPopupMenuItem itemWithTitle:@"Text Only" target:self action:@selector(hoge:)];
//初始化item2 -> 加圖示
QBPopupMenuItem *item2 = [QBPopupMenuItem itemWithTitle:@"Text with Image" image:[UIImage imageNamed:@"image.png"] target:self action:@selector(hoge:)];
把初始化好的item加到menu中
popupMenu.items = [NSArray arrayWithObjects, item1, item2, nil];
最後把menu show到view
[popupMenu showInView:self.view atPoint:CGPointMake(...)];
這份code需要注意的地方:
1. 實際上menu的view會和整個view的frame一樣大,而不是只有menu的大小 -> 可以在QBPopupMenuOverlayView中把
self.backgroundColor = [UIColor clearColor];
這行改成
self.backgroundColor = [UIColor redColor];
就可以知道惹

沒有留言:

張貼留言