我今天在人们的答案中看到过这几个地方,比如我有Foo的构造函数.
Foo( std::vector<SomeType>&& data) noexcept : data_(std::move(data)) {};
Run Code Online (Sandbox Code Playgroud)
为什么std :: move(data)是必需的,因为数据类型不是std :: vector <SomeType> &&?
std :: move对我来说,它只是简单地将数据转换为std :: vector <SomeType> &&?
http://en.cppreference.com/w/cpp/utility/move 将std :: move定义为,
static_cast<typename std::remove_reference<T>::type&&>(t)
Run Code Online (Sandbox Code Playgroud)
所以似乎std :: move在这种情况下再次无关紧要,但我可能错过了一些东西.
我试图将导航栏设置titleView为圆形图像.与您在邮件应用程序中通常看到的配置文件图像类
我相信我应该能够通过执行以下操作创建圆形缩小的图像:
UIImageView* profileImageView = [[UIImageView alloc] initWithImage:logoImage];
[profileImageView setFrame:CGRectMake(0, 0, 30, 30)];
//profileImageView.contentMode = UIViewContentModeScaleAspectFit;
// XXX contentMode commented out because enabling it causes the rounded corners to have no effect?
profileImageView.layer.cornerRadius = 15;
profileImageView.layer.masksToBounds = YES;
profileImageView.clipsToBounds = YES;
self.navigationItem.titleView = profileImageView;
Run Code Online (Sandbox Code Playgroud)
当我加载模拟器时,这似乎创建了我想要的瞬间图像,但图像出现在屏幕的左上角,然后立即捕捉到导航栏的中心.一旦位于导航栏的中心,它将重新缩放以占据导航栏的整个空间,而不是保留为小圆圈.我错过了什么?看起来我必须要禁用任何机制导致我的图像向上扩展以填充整个导航栏.