小编cho*_*ise的帖子

18
推荐指数
3
解决办法
2万
查看次数

调整大小和裁剪图像居中

所以目前我正在尝试裁剪和调整图片大小以使其适合特定尺寸而不会失去比例.

一个小图像,以显示我的意思:

替代文字

我玩了一些vocaro的类别,但他们不使用png并且与GIF有问题.图像也不会被裁剪.

有没有人有一个建议如何这样做调整大小最好的方式或可能有一个链接到现有的库/类别/什么?

谢谢你的所有提示!

ps:ios是否实现了"选择一个摘录",以便我有正确的比例,只需要缩放它?!

iphone cocoa-touch objective-c ios

16
推荐指数
1
解决办法
1万
查看次数

在iOS下使用AFNetworking下载文件/图像?

我以为我已经弄明白但是我无法让它发挥作用.我有一个方法,在数组中的每个URL上调用.此方法具有应在Application Support文件夹中的特定路径中下载以供脱机使用的图片的URL.但也许我误解了AFNetwork库中的方法.我的方法看起来像这样:

- (void) downloadImageInBackground:(NSDictionary *)args{

  @autoreleasepool {

    NSString *photourl = [args objectForKey:@"photoUrl"];
    NSString *articleID = [args objectForKey:@"articleID"];
    NSString *guideName = [args objectForKey:@"guideName"];
    NSNumber *totalNumberOfImages = [args objectForKey:@"totalNumberOfImages"];

    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:photourl]];

    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
    operation.inputStream = [NSInputStream inputStreamWithURL:[NSURL URLWithString:photourl]];

    [operation setShouldExecuteAsBackgroundTaskWithExpirationHandler:^{
        DLog(@"PROBLEMS_AF");
    }];
    DLog(@"URL_PHOTOURL: %@", photourl);
    DLog(@"indexSet: %@", operation.hasAcceptableStatusCode); 
    [operation  response];

    NSData *data = [args objectForKey:@"data"];

    NSString *path;
    path = [NSMutableString stringWithFormat:@"%@/Library/Application Support/Guides", NSHomeDirectory()];
    path = [path stringByAppendingPathComponent:guideName];
    NSString *guidePath = path;
    path = …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c ipad ios afnetworking

13
推荐指数
2
解决办法
3万
查看次数

调用可选的委托方法

我为一个类创建了一个委托

@protocol gameDelegate <NSObject>
@optional
-(void)gameStarted;
@required
@end
Run Code Online (Sandbox Code Playgroud)

现在在我的游戏对象中我调用了这个方法:

[self.delegate gameStarted];
Run Code Online (Sandbox Code Playgroud)

所以现在,如果我在任何地方启动这个对象并设置委托一切正常,直到gameStated被调用,因为它没有在创建游戏对象的主对象中实现(因为它是可选的).

我尝试了一些这方面的变化

if(![self.delegate respondsToSelector: @selector(gameStarted)]) {
    //[self.delegate gameStarted];
}
Run Code Online (Sandbox Code Playgroud)

但这不适合我.任何想法如何使这"真正"可选?

提前致谢

iphone delegates objective-c optional

12
推荐指数
1
解决办法
7442
查看次数

了解TTNavigator

以下情况:

在TTTableViewController中我添加了一些带URL的单元格.例如,他们正在开设一个班级@"tt://photos".这很好用.

第一件事是,我在TT示例中看到了一些网址,比如@"tt/photos/1".是否有可能在我的照片类中获取此"1"并说,例如,好的,请打开图片一,这是否只是在TTNavigatior中声明的另一个URL来打开特定的类?

另一件事是:是否可以将对象转发给链接类?单击一个单元格打开@"tt:// photos"(我的TTNavigator中的链接类)

使用普通的tableviews我可以覆盖我的init方法并使用我的initialize方法发送一个对象,这也可以点击我的TTItems吗?

谢谢!

iphone cocoa-touch objective-c three20

9
推荐指数
1
解决办法
6910
查看次数

Appearance API - UIBarButtonItem - MPMoviePlayerViewController和Youtube Webview

UIBarButtonItem使用Appearance API设置了如下样式

[[UIBarButtonItem appearance] setBackgroundImage:barButtonBgImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)

这适用于整个应用程序.问题是,如果您点击一个YouTube视频,这也会改变加载的YouTube视频的视频视图中的按钮uiwebview.

YouTube示例

添加这样的代码:

[[UIBarButtonItem appearanceWhenContainedIn:[MPMoviePlayerViewController class], nil] setBackgroundImage:barButtonBgImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)

不会改变任何东西(因为看起来YouTube的东西不仅仅是一个MPMoviePlayerViewController.

如果我理解正确,我也不允许更改YouTube视图的按钮(我也不想这样做).

有关如何停止在此YouTube视频观看中设置自定义栏按钮图像的任何想法?

如果您想仔细观察,参阅示例项目:https://dl.dropbox.com/u/80699/BarItemsSample.zip

iphone objective-c uinavigationbar ios5 uiappearance

7
推荐指数
2
解决办法
2309
查看次数

禁用自定义uibarbuttonitem图像上的色调

我的导航控制器中有一些自定义栏按钮项.

在此输入图像描述

(最大化图像以更好地查看边框)

上面的截图是它应该是什么样子以及我如何添加barbutton项目图像.正如您所看到的,图标顶部有一些较暗的渐变.

但是由于所有图标都被着色,这个黑色渐变也会变成白色,我的图标看起来非常模糊.

我把它们放到我的故事板中.

在此输入图像描述

有没有办法禁用这个barbuttonitems?

objective-c uikit uibarbuttonitem ios

7
推荐指数
2
解决办法
6436
查看次数

当它们是重复时刷新实体,同时刷新

我正在玩Symfony2和Doctrine2.

我有一个具有唯一标题的实体,例如:

class listItem
{
    /**
     * @orm:Id
     * @orm:Column(type="integer")
     * @orm:GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @orm:Column(type="string", length="255", unique="true")
     * @assert:NotBlank()
     */
    protected $title;
Run Code Online (Sandbox Code Playgroud)

现在我正在获取一个json并用这些项更新我的数据库:

$em = $this->get('doctrine.orm.entity_manager');

foreach($json->value->items as $item) {
    $listItem = new ListItem();
    $listItem->setTitle($item->title);
    $em->persist($listItem);
}

$em->flush();
Run Code Online (Sandbox Code Playgroud)

第一次工作正常.但第二次我得到一个SQL错误(当然):Integrity constraint violation: 1062 Duplicate entry

有时我的json文件会更新,有些项目是新的,有些则不是.有没有办法告诉实体经理跳过重复的文件,只是插入新的文件?

什么是最好的方法呢?

谢谢你的帮助.如果不清楚,请发表评论

编辑:

对我有用的是做这样的事情:

$uniqueness = $em->getRepository('ListItem')->checkUniqueness($item->title);
    if(false == $uniqueness) {
        continue;
    }

    $listItem = new ListItem();
    $listItem->setTitle($item->title);
    $em->persist($listItem);
    $em->flush();
}
Run Code Online (Sandbox Code Playgroud)

checkUniqueness 是我的ListItem Repo中的一个方法,它检查标题是否已经在我的数据库中.

那太糟了.这是每个项目的2个数据库查询.这最终会导致大约85个数据库查询.

php doctrine symfony

6
推荐指数
1
解决办法
3865
查看次数

显示直接用chunkypng创建的图像(无保存)

所以我用chunky_png创建了一个PNG图像.我不想保存这个图像,因为它只对这一个请求有用,所以我试图将这个图像保存为实例变量并在我的视图中显示它.

问题是这会导致invalid byte sequence in UTF-8我的视图出错.

我做了什么:

# controller
@img = source_img.resize(200, 200).to_string

#view
<img src="data:image/png;base64,<%= @img %>" />
Run Code Online (Sandbox Code Playgroud)

调试@img变量,raise @img.to_yaml 输出正确的字符串,fe:

--- !binary |-
    iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAQAAAACFI5MzAAACP0lEQVR4nO1Y
    QY6jQAy0AxJ9a34AH8l29lmRhgDJSDxrwsxHmh80N5Ag3urkjFZabTw5TJ+g
    HclWUa6ys5Ots6Ot8xP5/xFhnJIGxo/GdDD9HC+al6iNMpGFVie3kXOiyZET
    8bq49cAipRn5bVXOB+CVPiXPXyMRhQb1PDvPRmQZAMWOam/cN1TgpKFEyIVT
    pENLDF6oVoCuSCkdSIokEJnICy41K+AojX4psutY5+8011m80O1T4YpXxsOJ
    3mjqo2A8Jc+/RD7txVNhWFrJPDnTF41uBfPvoXKJHw/jjt7QLMThqKuj2Ufe
    +bUEFDeigtykr1UsVQkT2TP0cjA0H6wuR4VPkKilmMCDACjISmhLXc/64Ap+
    mp3RJZ3IFTVpe9aXXHxawKzOY/Ss8WCVHX2u7hjYNa/yxNsWSrEULzJT0Cd1
    XgToXEDWx/WgWRtPHKkZGSJ86ccDHjqvy9E1ryHfKORkmwJ+5u7NoqoUoXXQ
    axqTYS6Ng2jWukoBD6/7qI+2sc2AmUIKLnUxkHzFMDURVXdHx3hT97pd8hU6
    v9B8Ghs0qOnhIO9PybMZQRuumKTM42Ii3o2zew2lYLnBvRKP9ryErjeEd10/
    fexmaznti8ZWbopoJV5XKeIGJp6TUEEyDGVXZbV8bGCMqRPbTyQnlpDjNzAk
    gZXbNhxLINKH5+XZjsxsJD8DAwjGPtf+CnEDI8xVIX4HQ4aDtlLEDSzx5hdk
    M77FuUp5/9mKPHazu5LX97+wMH42qhX8RP4AQpEyh+7r4x0AAAAASUVORK5C
    YII=
Run Code Online (Sandbox Code Playgroud)

手动将此字符串复制到img标记中可正确显示图像.

这里有什么想法吗?直接显示此图像而不保存的其他想法?

提前致谢!如果有什么不清楚,请发表评论.

ruby encoding ruby-on-rails image ruby-on-rails-3

6
推荐指数
2
解决办法
3707
查看次数

使用d3js将子元素添加到强制定向图中的特定节点

我想根据节点类型向节点添加不同的子元素.因此,节点具有一个名为的属性type.所有节点都应包含g具有从属子元素的元素.

我通过使用D3s filter功能尝试了这个,但是因为我的代码不会每个节点只添加一次子元素,但是多次添加想要的子元素(与我有节点的数量相同).所以我想我做错了选择.

我的图形的节点和链接随着时间的推移而变化,所以我所做的是首先存储选择,当一个节点被添加到self.nodesi时调用draw函数(我将省略链接代码).

self.domNodes = this.svg.append('g').attr('class', 'nodes').selectAll('.node')

function draw() {
    self.domNodes = self.domNodes.data(self.nodes, (node) => node.id)
    self.domNodes.exit().remove()

    // all nodes
    self.domNodes.enter()
      .append('g')
      .attr('class', (node) => `node ${node.type}`)
      .merge(self.domNodes)

    // contributions
    self.domNodes.filter((d) => d.type === 'contribution')
      .append('circle')
      .attr('r', 4)
      .attr('fill', 'blue')

    // persons
    self.domNodes.filter((d) => d.type === 'person')
      .append('other elements and attributes...')

    self.simulation.nodes(self.nodes)
    self.simulation.force('link').links(self.links)
    self.simulation.alpha(1).restart()
}
Run Code Online (Sandbox Code Playgroud)

什么工作是,它并区分personcontribution并添加元素我特别希望为这种类型,但它不添加只占一个g节点,但它增加了那些(我有节点的数量)的倍数到每一个g节点.如果我继续调用绘制函数,它会向我的g元素添加越来越多的圆圈.

<svg>
    <g>
        <g class="nodes">
            <g class="node contribution" transform="translate(466, …
Run Code Online (Sandbox Code Playgroud)

javascript d3.js force-layout

6
推荐指数
1
解决办法
209
查看次数