簡體   English   中英

iOS社交框架和圖片發布

[英]IOS Social framework and image post

我正在嘗試使用社交框架。 我想知道是否有任何可能的方法,可以使用我的應用中的此實現來附加上次拍攝並當前保存在相機膠卷中的照片:

 - (IBAction)shareByActivity:(id)sender {
    NSArray *activityItems;

    if (self.sharingImage != nil) {
        activityItems = @[self.sharingImage, self.sharingText, self.addURL];
    } else {
        activityItems = @[self.sharingText, self.addURL];
    }

    UIActivityViewController *activityController =
    [[UIActivityViewController alloc] initWithActivityItems:activityItems
                                      applicationActivities:nil];

    [self presentViewController:activityController
                       animated:YES completion:nil];
}

如果是這樣,如何在-(void)viewDidLoad此特定部分中修改shareImage名稱?

self.sharingImage = [UIImage imageNamed:@"notSureWhatToPutHere"];

一切正常,社交面板打開並提供所有需要的服務。 我唯一的要求是找出如何從相機膠卷中調用最新圖像。 我不確定我是否需要圖像的真實姓名,或者是否有其他方法可以實現我想要的效果:貼有圖片的帖子(相機膠卷中的最新圖片)。

任何幫助表示贊賞。

您可以使用資產庫框架輕松地獲得相機膠卷中的最后一張圖像。 試試看:

#import <AssetsLibrary/AssetsLibrary.h>

然后獲得圖像:

ALAssetsLibrary *cameraRoll = [[ALAssetsLibrary alloc] init];
[cameraRoll enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *images, BOOL *stop) {
    [images setAssetsFilter:[ALAssetsFilter allPhotos]];
    [images enumerateAssetsAtIndexes:[NSIndexSet indexSetWithIndex:[images numberOfAssets] - 1] options:0 usingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop){
        if (result) {
            ALAssetRepresentation *rep = [result defaultRepresentation];
            self.sharingImage = [UIImage imageWithCGImage:[rep fullScreenImage]];
        }
    }];


}
                        failureBlock: ^(NSError *error) {
                            NSLog(@"An error occured: %@",error);
                        }];

感謝NSPostWhenIdle的大力幫助!

通過將我的ALAssettsLibrary代碼夾從viewDidLoad移開,我能夠解決從相機膠卷獲取“最新照片”的問題,並創建了refreshAlbum

 - (void) refreshAlbum
{
ALAssetsLibrary *cameraRoll = [[ALAssetsLibrary alloc] init];
[cameraRoll enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *images, BOOL *stop) {
    [images setAssetsFilter:[ALAssetsFilter allPhotos]];
    [images enumerateAssetsAtIndexes:[NSIndexSet indexSetWithIndex:[images numberOfAssets] - 1] options:0 usingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop)
     {
         if (result) {

             ALAssetRepresentation *rep = [result defaultRepresentation];
             self.sharingImage = [UIImage imageWithCGImage:[rep fullScreenImage]];
         }
     }];
}
                        failureBlock: ^(NSError *error) {
                            NSLog(@"An error occured: %@",error);
                        }];
}

然后,我從啟用了shareByActivity的同一按鈕調用新創建的refreshAlbum

- (IBAction)refreshButton:(id)sender {
    [self refreshAlbum];
}

由於我的應用程序啟動時沒有任何圖片可共享,因此效果特別好。 imageShare首次可用是在激活shareByActivity按鈕之后,該按鈕現在也帶有refreshButton功能!

再次感謝,這確實有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM