我有一个菜单,有些菜单项可能有子项.实际上非常简单.我希望实现这一点,一旦子菜单被鼠标滑过,相应的(父)菜单项也会突出显示.这种情况从未发生过,因为似乎只要鼠标离开菜单项并越过子菜单,浏览器就会将其设置为默认样式.任何帮助赞赏!非常感谢!
菜单html:
<div id="top_navigation">
<ul>
<li><a href="#">item1</a></li>
<li><a href="#">item2</a>
<ul class="submenu">
<li><a href="#">sub1</a></li>
<li><a href="#">sub2</a></li>
<li class="selected_menu_item"><a href="#">sub3</a></li>
</ul>
</li>
<li><a href="#">item3</a></li>
<li><a href="#">item4</a></li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
#top_navigation {
width: 1248px;
margin: 0 auto;
position: relative;
text-transform: uppercase;
font-family: "Rounded Font", sans-serif;
font-size: 23px;
}
#top_navigation ul ul {
display: none;
}
#top_navigation ul {
padding-left: 0;
}
#top_navigation ul li {
margin: 0;
padding: 0;
float: left;
width: 312px;
height: 64px;
line-height: 64px;
font-size: 20px;
list-style: none;
}
#top_navigation …Run Code Online (Sandbox Code Playgroud) 所以我在与Swift的努力中遇到了另一个障碍.我正在尝试将多个图像加载到图像库中 - 除了一件事以外,一切正常.尽管我清除了图像,但应用程序的内存使用仍在不断增长和增长.在基本上消除了所有代码之后,我发现这是由我的图像加载脚本引起的:
func loadImageWithIndex(index: Int) {
let imageURL = promotions[index].imageURL
let url = NSURL(string: imageURL)!
let urlSession = NSURLSession.sharedSession()
let query = urlSession.downloadTaskWithURL(url, completionHandler: { location, response, error -> Void in
})
query.resume()
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,这段代码基本上没有任何功能.然而,每次我调用它,我的应用程序内存使用量都在增长.如果我注释掉查询,则内存使用量不会改变.
我已经阅读了几个类似的问题,但他们都涉及使用委托.那么,在这种情况下,没有委托,但存在内存问题.有人知道如何消除它以及导致它的原因吗?
编辑:这是一个完整的测试类.似乎只有在可以加载图像时内存才会增长,就像指向图像的指针永远保存在内存中一样.当找不到图像时,没有任何反应,内存使用率保持低水平.也许有些暗示如何清理这些指针?
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
//memory usage: approx. 23MB with 1 load according to the debug navigator
//loadImage()
//memory usage approx 130MB with the cycle below according to the debug navigator
for i in 1...50 {
loadImage() …Run Code Online (Sandbox Code Playgroud) 我正在尝试自定义EditText的外观,但我没有这样做...我希望文本字体为圆形边框,左侧有一个图形图标(因此图标也在边框内,旁边edittext).有人可以解释一下我是如何实现这一目标的吗?我需要将边框绘制为形状还是有一些属性?非常感谢!
我正在尝试为JSON加载委托创建一个协议JSONLoaderDelegate.我的另一个类叫做JSONLoader,应该将事件分派给它的委托(实现JSONLoaderDelegate协议),如:
self?.delegate?.jsonLoaderdidEndWithError(self!, error: JSONLoaderError.LoadError)
Run Code Online (Sandbox Code Playgroud)
JSONLoader的实现并不重要(imho).但是我似乎有问题来实现协议,这是代码:
@objc protocol JSONLoaderDelegate {
optional func jsonLoaderdidBeginLoading(jsonLoader: JSONLoader)
func jsonLoaderdidEndWithError(jsonLoader: JSONLoader, error: JSONLoader.JSONLoaderError)
func jsonLoaderDidEndWithSuccess(jsonLoader: JSONLoader)
}
Run Code Online (Sandbox Code Playgroud)
这看起来很简单,但我收到一个错误:
方法不能标记为@objc,因为参数的类型不能用Objective-C表示.
指出了这三个功能.
显然,如果我删除@objc属性我不能使用optional该功能.我真的想保留jsonLoaderdidBeginLoading作为可选的.任何想法/方法来解决这个问题?谢谢!
我有一个2D场景,应该显示可用的纸板场景列表(如缩略图).用户点击缩略图后,我试图将他发送到选定的纸板场景.但是,我无法捕捉第一个(列表)场景中的触摸事件.点击后,没有任何反应,简单地说.(编辑:我会补充说我只在Android上测试过这个)
这就是我测试的内容:
- 我创建了一个新项目(Unity 5.0.2f) - 2D
- 我把UI按钮和文本字段放到了场景中
- 我补充一点,在点击按钮后触发脚本 - 它只是改变了文本框的文本"点击" --- >>>一切工作正常,点击触摸屏上的按钮按预期工作,文本改变<<< ---
- 我导入谷歌的Carboard SDK --- >>>没有触摸事件的工作!点击处理程序从不触发<<< ---
- 我删除了Google的Cardboard SDK --- >>> TAPS WORK AGAIN <<< ---
触发的点击脚本很简单:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class TestScript : MonoBehaviour {
public Text text;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
public void ButtonClicked() {
text.text = "Clicked!";
// Application.LoadLevel ("DemoScene");
}
}
Run Code Online (Sandbox Code Playgroud)
所以基本上导入Cardboard SDK完全打破了Unity 5中的触摸事件.如果我直接统一测试它,鼠标事件就可以正常工作.即使导入Cardboard …
当我更新数组内部对象的属性(然后作为组件的 prop 传递)时,触发 svelte 反应性的正确方法是什么?
let items = [{
id: 1,
name: 'first'
}, {
id: 2,
name: 'second'
}];
function findItem(id) {
return items.find(item => item.id == id);
}
function modifyItem(id, changedProps) {
let item = findItem(id);
if(item) {
Object.assign(item, changedProps);
items = [...items]; // this does nothing
console.log(items); // correctly displays the modified items array
}
}
// ...
<MyList {items}/>
Run Code Online (Sandbox Code Playgroud)
所以我正在传递我的modifyItem功能。然后子组件调用它并想要更新items数组。这工作得很好,但是反应性没有被触发(我假设因为 svelte 无法识别数组中的对象已被修改),所以MyList永远不会重新渲染。
这样做的“正确”/“正确”方法是什么?.map仅仅创建对象的新实例并将其推入,对于整个数组来说似乎有点低效。还有其他方法吗?多谢!
有可能做--subject-?现在,如果我设置checkboxInstance.setEnabled(false);复选框获取其"禁用图形",灰显并更透明.我想要做的是完全相同的,但我需要保持复选框的活动状态.
原因是我在父元素上有一个onClickListener.这工作正常,但似乎触摸复选框时,复选框得到取消/检查而不触发父母的监听器(当然我想要解雇它).
谢谢!
编辑:基本上我正在寻找这样的东西(AS3中的代码,当然没有图形,所以它不会真正起作用......但只是理论):
var s:Sprite = new Sprite();
var cb:Sprite = new Sprite(); //let's assume this is a checkbox
s.addChild(cb); //cb is inside of the s
addChild(s); //s is added to the display list
s.mouseChildren = false;
s.addEventListener(MouseEvent.CLICK, fireClick);
//cb could have a mouse listener as well, nothing would happen as s.mouseChildren is set to false
Run Code Online (Sandbox Code Playgroud) 我已经阅读了很多关于htaccess的回复,但它仍然让我感到困惑.我的.htaccess文件中有以下规则,基本上从文件中删除.php扩展名并解析无扩展名URL:
RewriteEngine On
# Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ http://www.example.com/$1 [R=301,L]
# Redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://www.example.com/$1 [R=301,L]
# Resolve .php file for extensionless php urls
RewriteRule ^([^/.]+)$ $1.php [L]
Run Code Online (Sandbox Code Playgroud)
但是,当我想联系例如contact_form.php(处理来自HTML表单中的表单数据的处理)时,它将被重写为contact_form,并且所有POST数据都将丢失.我希望在请求包含发布数据时实现这一点,不应重定向/重写URL.我真的不知道重写规则应该是怎样的.所有帮助非常感谢!
我试图在我的应用程序中设置root-view-controller-change的动画.交换视图控制器后,我立即加载第二个控制器所需的数据.在加载数据时,我显示了一个加载器(MBProgressHUD).这是我交换视图控制器的功能:
class ViewUtils {
class func animateRootViewController(duration: NSTimeInterval, changeToViewController: UIViewController) {
let window = UIApplication.sharedApplication().delegate?.window?
if window == nil {
return
}
UIView.transitionWithView(window!,
duration: duration,
options: UIViewAnimationOptions.TransitionFlipFromLeft | UIViewAnimationOptions.AllowAnimatedContent,
animations: {
window!.rootViewController = changeToViewController
},
completion: nil
)
}
}
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但有一点 - 它完全打破了装载机.我想象一下正在发生的事情:
这是旋转时的第二个视图控制器.旋转完成后,加载器显示正常,微调器和文本补间都在圆角矩形中的正确位置.
我真的不明白为什么会这样,请有人向我解释一下,拜托?有没有办法防止它?
我显示加载器的第二个视图控制器的代码:
override func viewDidLoad() {
super.viewDidLoad()
hud = HUD(containingView: view)
hud.show()
createBackground()
}
Run Code Online (Sandbox Code Playgroud)
我的班级:
class HUD {
private var hudBG: UIView!
private var view: UIView!
private(set) var isShown = false
init(containingView: UIView) {
view = …Run Code Online (Sandbox Code Playgroud) 我想让用户从手机的图库中选择一些图像,然后将它们加载到应用程序中.使用Intent.ACTION_PICK和startActivityForResult(intent,SELECT_PHOTO)这似乎是一项简单的任务.
但是,我需要按日期范围过滤图库中的结果.我需要设置一个初始日期和结束日期,只显示这两个日期之间的照片(或者可以选择).有谁知道如何实现这一目标?无论如何我似乎无法过滤画廊结果.
谢谢!
android ×4
ios ×3
swift ×3
objective-c ×2
.htaccess ×1
animation ×1
apache ×1
checkbox ×1
css ×1
delegates ×1
filter ×1
gallery ×1
highlight ×1
image ×1
java ×1
javascript ×1
jquery ×1
layout ×1
memory ×1
memory-leaks ×1
mod-rewrite ×1
nsurlsession ×1
php ×1
protocols ×1
svelte ×1
uiview ×1
xml ×1