小编pkl*_*luz的帖子

键盘上的UIView类似于iMessage App

目前我正在尝试基本实现和精确复制Apples iMessage App.

这意味着我需要一个停靠在屏幕底部的UITextView,并在它成为firstResponder时向上移动. - 实际上这很容易.有很多方法可以做到这一点,如果收到通知,最常见的两个当然是向上或向下动画.另一种是通过inputAccessoryView来完成.可悲的是,有一些功能,另一个没有.它们似乎是相互排斥的.

最大的问题是轮换.

我已经深入研究了至少七个不同的github项目,它们都重新实现了我想要实现的相同功能/行为,但实际上所有这些项目都失败了.

例如,官方Facebook/FacebookMes​​senger /(可能是WhatsApp)应用程序使用的HPGrowingTextView是一大块垃圾代码.拿你的iDevice,打开Facebook应用程序,进行聊天,弹出键盘并旋转你的设备.如果你注意你会注意到输入条略微跳跃,并在键盘的框架和它自己的框架之间留下一些空白.然后在显示键盘时查看iMessage中的Apples实现.这是完美的.

除此之外,HPGrowingTextView库使用的contentOffset和EdgeInset-hacking给了我噩梦.

所以我想自己做,从头开始.

现在,我已经有了一个非常光滑,优雅和无法实现的不断增长的UITextView,但缺少一部分.

优雅的旋转.

当我在willRotateToInterfaceOrientation:duration:方法中简单地将帧调整到各自的新位置时,一切都会完美地完成,但我遇到的问题与HPGrowingTextView(请参阅Facebook App)有关.旋转发生时,输入视图和键盘之间有一点点空间.

我发现当将设备旋转到横向时,当前显示的人像键盘不会"变形"而是消失(发送'willHide'通知)并重新出现横向版本(发送'willShow'通知).过渡是一种非常微妙的淡化,可能还有一些调整.

我使用inputAccessoryView重新实现了我的项目,看看当时发生了什么,我感到非常惊喜.inputAccessoryView与键盘完美同步旋转.两者之间没有空隙/间隙.

遗憾的是,我还没有想出如何将inputAccessoryView停靠在屏幕底部并且不会在键盘旁边消失/移出它...

我不想要的是hack-y解决方案,例如,"在toInterfaceOrientation的CoordinateSystem中稍微降低帧,然后在调用didRotateFrom ...时将其移回."

我知道另一个已经设法实现此类行为的应用程序,它是"Kik Messenger".

有没有人有想法,建议或链接,我还没有看到这个主题?

谢谢你!

注意:一旦这个问题得到解决,我将开放项目供所有人利用,因为几乎我在过去几天能够找到的所有实现都是一团糟.

uitextview uikeyboard ios

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

如何自动加载键盘(iOS SDK)?

非常简单的问题:

我有一个由两个文本字段组成的视图.当视图加载时,我希望键盘自动弹出并聚焦第一个字段.

我怎么做?(代码?在IB?)

非常感谢!芥末

keyboard sdk view uitextfield ios

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

从iOS App上传到Amazon S3

让我们从问题陈述开始:

我的iOS应用程序有一个登录表单.当用户登录时,将调用我的API并授予或拒绝访问权限.如果授予访问权限,我希望用户能够将图片上传到他的帐户和/或管理他们.

作为存储,我选择了亚马逊S3,我认为最好有一个名为"myappphotos"的存储桶,其中包含大量文件夹.文件夹名称是用户电子邮件和密钥的哈希值.因此,每个用户在我的Amazon S3存储桶中都有自己独特的文件夹.

由于我刚刚开始使用AWS,这是我的问题:

设置这样的系统的最佳做法是什么?我希望用户能够将图片直接上传到Amazon S3,但当然我无法对访问密钥进行硬编码.因此,我需要我的API以某种方式与亚马逊交谈,并请求各种访问令牌 - 仅针对属于我正在请求的用户的特定文件夹.

任何人都可以帮助我和/或引导我找到解决类似问题的某些来源吗?不要以为我是第一个,而亚马逊的文档是如此广泛,以至于我真的不知道从哪里开始寻找.

非常感谢!

upload amazon-s3 ios

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

join()如何工作?(Java中的多线程)

我正在准备考试,经过一些样本练习(其中包含了正确的答案),我根本无法理解它们.

这个问题

(多项选择):以下计划的一些可能结果是什么?

A)值为1.值为1.最终值为1.

B)值为1.值为1.最终值为2.

C)值为1.最终值为1.值为2.

D)值为1.最终值为2.值为2.

该程序

public class Thread2 extends Thread {

    static int value = 0;
    static Object mySyncObject = new Object();

    void increment() {

        int tmp = value + 1;
        value = tmp;

    }

    public void run() {

        synchronized(mySyncObject) {

            increment();
            System.out.print("Value is " + value);

        }

    }

    public static void main(String[] args) throws InterruptedException {

        Thread t1 = new Thread2();
        Thread t2 = new Thread2();

        t1.start();
        t2.start();

        t1.join();
        t2.join();

        System.out.print("Final value is " + value); …
Run Code Online (Sandbox Code Playgroud)

java methods multithreading join synchronized

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

自定义Mahapps.MetroWindow关闭按钮

我正在使用Mahapps.MetroWindow(http://mahapps.com/)来设计我的应用程序外观,现在我正在寻找自定义X /关闭按钮外观的正确方法.默认情况下,MetroWindow将自定义样式应用于所有三个命令按钮.我希望在Windows中始终将"关闭"按钮设置为红色鼠标悬停为红色.

到目前为止我发现的是,我可以将WindowCloseButtonStyle属性设置为自定义样式.我是这样做的:

<controls:MetroWindow x:Class="WpfApplication2.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
    Title="MainWindow" 
    Height="350" 
    Width="525"
    WindowCloseButtonStyle="{DynamicResource RedCloseWindowButtonStyle}">
...
Run Code Online (Sandbox Code Playgroud)

在一个单独的XAML文件中,我将样式定义为

<Style x:Key="RedCloseWindowButtonStyle"
       TargetType="{x:Type Button}"
       BasedOn="{StaticResource MetroBaseWindowButtonStyle}">
    <Setter Property="XXX"
               Value="XXX" />
</Style>
Run Code Online (Sandbox Code Playgroud)

我假设我必须在样式设置器中填写XXX的空白.由于我是Windows开发的新手,我的问题是:我感兴趣的属性是什么?我在哪里可以找到一个浏览器来根据给定的上下文浏览可用的属性?如果我想完成上面描述的内容,那么风格的价值是什么?

wpf xaml mahapps.metro

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

使用CoreAnimation"折叠"NSWindow

所以我对AppKit和Cocoa(来自UIKit和CocoaTouch)相当新,我正在实现一个折叠NSWindow的界面.在iOS上,这将是相当容易的,但看看OS XI选择提出的许多细微差别.

您将如何实施以下过渡?

窗口折叠

注意:底栏是我的contentView的一部分,而不是OS X提供的底栏.即我的窗口(顺便说一下INAppStoreWindow)由titleBar和contentView组成.

我想我可以只是折叠contentView并同步调整窗口的大小,但如果我能够在折叠时保留透明度,这是因为透视转换所致.即向内弯曲的侧面(在过渡期间)应该是透明的.还是我在思考这个?

macos core-animation transformation appkit nswindow

5
推荐指数
1
解决办法
526
查看次数

C++堆栈数据结构.这段代码有什么问题?

所以我目前正在尝试通过实现各种数据结构将我的Java体验迁移到C++,以便至少实现一次.

你介意给我一些建议吗?我遇到的问题主要集中在push(int值)中的指针,尤其是pop().由于推动似乎正常工作,我发现自己很难在弹出东西时获得正确的价值.怎么了?

PS:我也认为,既然我手动分配了我的数组空间,我也需要删除它.我怎么做?

#ifndef STACK_H
#define STACK_H

class Stack
{
private:
    int *stackArray;
    int elementsInArray;
    int allocatedArraySize;
    int alpha;
    int beta;

public:
    Stack();
    void push(int aValue);
    int pop();
    bool isEmpty();
    int size() const;
};

#endif
Run Code Online (Sandbox Code Playgroud)

和实施:

#include <iostream>
#include "Stack.h"

Stack::Stack() 
{
    alpha = 4;
    beta = 2;
    elementsInArray = 0;
    allocatedArraySize = 1;
    stackArray = new int[1];
}

void Stack::push(int aValue)
{
    if (elementsInArray == allocatedArraySize) 
    {
        int temporaryArray[allocatedArraySize*beta];

        for (int i = 0; i < elementsInArray; i++)
            temporaryArray[i] …
Run Code Online (Sandbox Code Playgroud)

c++ stack data-structures

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